ソフトウェア

ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点


研究や分析のためにはまずデータ収集を行う場合が多いものですが、そのような単純作業にかける時間はなんとか減らしたいところです。どうすればウェブサイトのデータを自動で集めるスクレイピングを行えるのか、実行する際にはどのような点に気を付ければよいのかなどについて、オックスフォード大学・EBM DataLabの研究者たちがnatureにコラムを掲載しています。

How we learnt to stop worrying and love web scraping
https://www.nature.com/articles/d41586-020-02558-0

◆スクレイピングはどのような仕組みなのか
ブラウザの「ソースを表示」や「要素を調査」機能を使うと分かる通り、ウェブページはHTMLと呼ばれる言語でエンコードされたテキストファイルをもとに表示されています。スクレイピングでは、このHTMLファイルを解析することで、必要な部分のデータを取り出すことが可能。よくあるタスクとしては、「www.example.com/data/1」から「www.example.com/data/100」までのURLそれぞれにアクセスして、必要なデータを保存するというものが考えられます。データ収集をプログラムに行わせることで時間の節約が可能なだけでなく、ヒューマンエラーの可能性を避けることができ、また最新のデータに更新したい時もスムーズです。


◆どのようにスクレイピングを始めれば良いか?
スクレイピングにはさまざまな方法が存在しており、例えば「webscraper.io」というブラウザ拡張機能であればプログラミング不要で利用可能です。

自分でスクレイピング用のプログラムを作成することで、スクレイピングをより細かくカスタマイズすることもできます。基本的にはどのプログラミング言語を利用してもスクレイピングを行えるようですが、natureの記事ではPythonとそのライブラリであるRequestsBeautifulSoupの組み合わせが紹介されています。なお、スクレイピング作業は数日かかる場合もあり、その時はPCがスリープしないように気を付ける必要があるとのこと。プライベートなサーバーを持っている場合はサーバー上でスクレイピングを行うことも検討すると良さそうです。

◆スクレイピング以外の方法は?
ウェブサイトに全てのデータをダウンロードできるような機能が用意されていれば、その機能を使うのが簡単です。例えば「ClinicalTrials.gov」は臨床研究のデータを集めたサイトですが、そのサイトに掲載されているデータを一括でダウンロード可能となっています。また、APIが公開されている場合はAPIを利用することでHTMLを解析せずともデータを入手できるようになります。

◆スクレイピングが容易なウェブサイト、難しいウェブサイトについて
一部のウェブサイトではデータがHTMLに記載されていない場合があり、スクレイピングを行うのに高度なテクニックを要求される場合があります。また、CaptchaやDoS対策サービスなどによってスクレイピングを拒否される場合もあるとのこと。サイトによっては「特定のページだけスクレイピング可能」のような制限がrobots.txtに記載されているため、合わせて確認しておくと良さそうです。

By Brogue Lessor Jig, CC 4.0

◆スクレイピングのマナー
スクレイピングプログラムがウェブサイトにデータを要求するたびに、サーバーがデータを用意するための処理を行う必要があります。人間がブラウザからウェブサイトを閲覧する場合に比較すると、スクレイピングプログラムは圧倒的な速度でアクセスを行えるため、意図せずウェブサイトを攻撃してしまう危険があるとのこと。それぞれのリクエストの合間に数秒間の休憩を入れることでこうした問題を回避可能です。

◆データ利用の制限
抽出したデータのライセンス・著作権についてはしっかりと確認する必要があります。ただし、合法的にデータを共有できない場合でも、スクレイピング用のプログラム自体を共有することは全く問題ないとのこと。

また、ウェブサイトのスクレイピングを行うプログラムは、実用性が高いだけでなく、ある程度の難易度がありつつもドキュメントが豊富なため、初心者がプログラミングスキルを身につけるのに適したプロジェクトだと述べられています。

この記事のタイトルとURLをコピーする

・関連記事
住みたい物件のURLを貼り付けるだけで家賃・初期費用・2年間トータル費用などの比較表が作れる「家探しのための Suumo スクレイピング用スプレッドシート」 - GIGAZINE

画像をブックマークできるSNS「Pinterest」がGoogle画像検索の表示ランキングを故意に上げていると判明 - GIGAZINE

インターネットに公開された情報は「法律による保護の対象ではない」と裁判所が認める - GIGAZINE

スクレイピングでLinkedInの公開情報を活用することに問題はないと裁判所が判断 - GIGAZINE

2ちゃんねるがdatを近日廃止、さらにウェブスクレイピングを用いた専用ブラウザ開発・公開は禁止して2015年3月3日以降はAPI経由の許諾制に - GIGAZINE

Googleの収入源となるサービスが抱える問題点とは? - GIGAZINE

in ソフトウェア, Posted by log1d_ts

You can read the machine translated English article here.