Pythonでスクレイピングする!
Pythonでスクレイピングをする方法
スクレイピングとは
スクレイピングとは、Webサイトから情報を抽出するプログラムのことです。スクレイピングを行うことにより、人が行うよりも早く確実に求める情報を得ることができます。
スクレイピングを行うプログラムのことを「スクレイパ」と言います。スクレイピングを始める前に、対象のサイトを「クローリング」する必要があります。クローリングとは、WebサイトからHTMLなどの情報を取得する技術で、クローリングを行うプログラムのことを「クローラー」といいます。
スクレイピングは、「スクレイパ」と「クローラー」の組み合わせによって構成されています。
スクレイピングをする上で注意すること
著作権法を遵守すること。
アクセス先サイトの利用規約に従うこと。
スクレイピングを行うプログラムを実行する際には、最低限の設定を必ず行うこと(クロール間隔時間、最大接続数など)。
また、スクレイピングにあたり、接続先サイトのサーバーに過重な負担をかけるアクセスを行うと、業務妨害として刑事・民事上の責任を問われるおそれがあります。
中にはハニーポットトラップというスクレイピングでアクセスするとサイトの所有者に通知がいくようになっているサイトもあるのでそのサイトがスクレイピングしていいサイトかどうかしっかり確認しましょう。
さらにスクレイピングするウェブページが変更された場合などはクラス名が変わっていることが多く今までのコードが使えなくなります。なのである程度自分でテンプレートなどを作成しておくと再度変更する際に時間短縮になります。
Pythonでスクレイピングする際に利用できるライブラリ
Pythonには、スクレイピングに適したライブラリが複数用意されています。よく利用されるライブラリは、WebサイトからWebページを取得するRequests、Webページを解析して情報を抽出するBeautiful Soup、プログラムからWebブラウザを動かしてWebページを取得・操作するSeleniumです。
これらのライブラリはそれぞれ出来ることと特徴が違います。Requestsはシンプルで人が直感的に分かりやすいプログラムを記述できますが、データ抽出はできません。Beautiful Soupは取得したWebページの情報(HTML)をパースできますが、Webページ取得はできません。SeleniumはWebページ取得とデータ抽出の両方が利用できますが、動作が遅いのがデメリットです。
以下はSelenium、requestsを使ったスクレイピングのサンプルコードです。コピペでは動作しないので注意してくださいね。
Seleniumを使ったサンプルコード
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?