データサイエンティストがデータ分析を行う際には、分析のためのデータセットが必要となります。
そして、分析で用いるデータは、
- 「各企業や団体が独自で持っているデータ」
- 「政府が公開している統計データ」
- 「調査会社が集めたマーケットデータ」
など様々あります。
一方で、分析で使えるデータセットが揃っていない場合は、自らデータを集める必要があります。
今回の記事では、
- データ分析のためのデータを自分で集める必要がある
- Pythonでのウェブスクレイピングに興味がある
という人に向けて、ウェブスクレイピングのメリットと注意点を紹介していきます。
ウェブスクレイピングのメリットと注意点
ウェブスクレイピングとは?
ウェブスクレイピングとは、Webサイトにある情報をコンピューター(機械)を用いて抽出および加工する技術のことを呼びます。
ウェブスクレイピングでは「画像情報」「数値情報」「文字情報」などの、あらゆるデータを収集することができます。
さらに、収集したデータを目的に応じたデータへ変換させる一連の処理を含めて、ウェブスクレイピングと呼びます。
ウェブスクレイピングのメリット
1.データ収集を効率的におこなえる
ウェブスクレイピングは、データ収集を人手でやるより効率的に行うことができます。
たとえば、ある製品の出荷量情報を、1か月分の情報=1ページで公開しているサイトにおいて、10年分(120カ月分)のデータを人手で集めようとした場合、「120クリック&120コピペ」が必要となります。
これは頑張ればできない作業量ではないかもしれませんが、効率的ではありません。当然、繰り返し作業の中でミスが発生する可能性もあります。
ウェブスクレイピングを用いることで、「120クリック&120コピペ」は機械がやってくれるので、短時間でミスなくデータを集めることが可能となります。
2.データ収集を自動でおこなえる
ウェブスクレイピングは機械が行うため、データ収集を自動で行うことができます。
自動で行えることから、人間が寝ている間でも、別の仕事をしている間でも、月1回の決まったタイミングでも、いつでもデータ収集を行うことが可能となります。
ウェブスクレイピング時の注意点
1.不法行為責任を問われる可能性がある
スクレイピングは相手に迷惑をかける可能性があります。さらに、著作権侵害または業務妨害当の理由により、不法行為責任を問われる可能性があります。
そのため、スクレイピングを行う場合には、不法行為責任を問われる可能性があることを認識する必要があります。
2.悪意がなくても逮捕される事例がある
スクレイピングにより、不法行為責任を問われ、逮捕された事件があります。
この事件で、スクレイピングを行った側は、相手を害する目的でスクレイピングを行ったわけでなかったと言われており、さらに、相手側のサーバーに負荷がかからないような配慮もあったとも言われています。
つまり「悪気はなかった」「知識がなかった」などの言い訳は通じないことに注意してください。
事件を詳しく知りたい人は「岡崎図書館事件」で検索してみてください。
3.必ずスクレイピング先の利用規定を確認する
スクレイピングを検討する前に、必ずスクレイピング先のサイトの利用規約を確認するようにしましょう。
理由は、サイトによっては、利用規約でスクレイピングを明示的に禁止している場合があるためです。
たとえば、多くの情報が集まっているサイトであれば「Amazon」「Twitter」であったり、株価情報が取得できる「Yahoo!ファイナンス」では、禁止する旨が記載あります。
また、利用規約の中では「スクレイピング」という単語名で記載していない場合もあるため、「自動」「クローリング」「データマイニング」「ロボット」「ボット」などの別の単語でも検索&確認することにも注意が必要となります。
4.相手側のサーバーに過負荷がかからないようにする
実際にスクレイピングを行う場合には、スクレイピング先のサーバーに過負荷がかからないような対処方法を講じる必要があります。
具体的には、サイトへのアクセスの繰り返し処理の時間を〇秒以上待つなどの対処法があります。
5.サイト構造の変更の影響をうける
スクレイピングは、サイト構造(HTML)の変更の影響を受けてしまいます。
スクレイピングはHTMLを解析したうえで指定したデータを取り出す技術となります。そのためスクレイピング先のサイトのHTML構造に変更が入ると、指定したデータを取り出せなくなる可能性があります。
もし、スクレイピング先のHTML構造が変更された場合は、プログラムの変更が必要となる点も注意が必要です。
ウェブスクレイピング関連のライブラリ
Pythonでウェブスクレイピングを行う場合に、よく使用するライブラリは次の2つです。
ここでは詳細な説明は割愛しますので、実際にウェブスクレイピングのプログラムを作る際に、このライブラリ名を思い出してもらえればOKです。
- requests … HTTP通信用ライブラリ
- Beautiful Soup … HTMLからデータを抽出するためのパッケージ
まとめ
本記事では、ウェブスクレイピングのメリットと注意点について紹介しました。
ウェブスクレイピングは、データ収集目的においては、たいへん便利な手段となりますが、その反面、使用にあたっては十分注意を払う必要もあります。
データサイエンティストにとって、適切なデータを集めることは重要なスキルとなります。そのため、Pythonを用いたウェブスクレイピングに興味がある人はスクレイピングを学んでみてはいかがでしょうか。
じゃあ。