昨日までのはこちら
100日後にエンジニアになるキミ - 70日目 - プログラミング - スクレイピングについて
100日後にエンジニアになるキミ - 66日目 - プログラミング - 自然言語処理について
100日後にエンジニアになるキミ - 63日目 - プログラミング - 確率について1
100日後にエンジニアになるキミ - 59日目 - プログラミング - アルゴリズムについて
100日後にエンジニアになるキミ - 53日目 - Git - Gitについて
100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて
100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて
100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1
100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1
100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1
100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1
今回もスクレイピングの続きです。
あらかたスクレイピングの原理は前回までで終わっていますので
今日はSeleniumのお話です。
Seleniumについて
Selenium
はWEBブラウザの操作を自動化するためのフレームワークソフトウェアです。
Selenium
を使うことで、Pythonrequests
ライブラリ単体で行う
スクレイピングでは取得できない情報も取得できるようになります。
では取得できない情報とは何でしょうか?
通常のrequests
ライブラリではgetメソッドなどで取得できる情報はHTMLのソースになります。
その要素の一部がJavascriptでレンダリングするように書かれている場合
Javascriptが働かないとデータとして反映されません。
そのためJavascriptでで動的に生成される要素はrequests
ライブラリでは
取得することはできません。
Selenium
はWEBブラウザを動かしてデータを取得しに行くため、通常のブラウザでアクセスするのと何ら変わりません。Javascriptも働きレンダリングされたデータを取得できます。
Seleniumを動かすのに必要なもの
PCなどでSelenium
を動かすのに必要なのは以下の3つです。
WEBブラウザ
Chrome, Firefox, Opera など
WebDriver
ブラウザを操作するためのソフトウェア
Selenium
WebDriverと連携してプログラムからブラウザを操作するライブラリ
各種ツールのインストール
インストール方法は以下のようになります。
WEBブラウザのインストール
各種ブラウザのダウンロードサイトからダウンロードしてインストールを行う
WebDriverのダウンロード
WebDriverはインストールは必要なく、ダウンロードして配置するだけで動作します。
ダウンロード後はプログラムから見て近いディレクトリなどに配置しておきます。
ドライバーはブラウザのバージョンアップとともに変更されるので、都度バージョンに合わせてダウンロードを行います。
Seleniumのインストール
Pythonでのインストール方法は下記です。
pip install selenium
Seleniumを動かす
Selenium
を動かすまでの手順としては
1.ブラウザのインストール
2.WebDriverのダウンロードと配置
3.Seleniumのインストール
です。
ここではSelenium
からGoogle Chrome
を操作してみましょう。
from selenium import webdriver
# ドライバー設定
chromedriver = "ドライバーのフルパス"
driver = webdriver.Chrome(executable_path=chromedriver)
driver.get('アクセス先のURL')
これを実行するとブラウザが立ち上がります。
立ち上げるブラウザがGoogle Chrome
なのでwebdriver.Chrome
を使っています。
ブラウザによって対応するメソッドが変わります。
Firefox:webdriver.Firefox
Opera:webdriver.Opera
executable_path
にはWebDriverのパスを書くのですが
フルパス(絶対パス)でないと認識しないようです。浅目の階層にwebdriverを置いておきましょう。
ここまででSeleniumを使ってブラウザを起動できたのではないでしょうか?
次回はここからブラウザの操作方法に入ります。
まとめ
seleniumを使うと通常のスクレピング手法では
取得できない情報も簡単に取得できるようになるので便利です。
データが取得できなくて困っている方はseleniumを試してみましょう。
君がエンジニアになるまであと26日
作者の情報
乙pyのHP:
http://www.otupy.net/
Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw
Twitter:
https://twitter.com/otupython