Seleniumの使い方
Seleniumは、ブラウザの操作を行う機能を持ったライブラリです。主にはWEBアプリケーションのテストを行ったりWEB上の情報を取得するスクレイピングに利用されます。
スクレイピングについては、以前に”Scrapy”というライブラリの記事を書いたことがありますが、最近のWEBサイトやWEBアプリは、Javascriptでブラウザで表示してから処理するものも多くて、”Scrapy”だけでは取得出来ない情報も多かったりします(*_*)
”Selenium”はブラウザを操作するライブラリなので、Javascriptで生成されたHTMLもしっかり捕まえてくれますので、上手くいかないな~って時には試してみて下さい(^o^)
環境
- Windows
- anaconda
- python3
- VS code
準備
ライブラリのインストール
まずはSeleniumを使えるようにインストールしましょう!
condaの人は
conda install -c conda-forge selenium
Anacondaの人は、ANACONDA.NAVIGATORでもいけますよ。
pipの人は
pip install selenium
です。
chromedriverを準備
Seleniumはいろいろなブラウザを操作することが出来ますが、今回は自分がいつも使っているChromeブラウザを操作することを前提としたいと思います。
Seleniumを使うためには、操作対象のブラウザのドライバーを使いますので、それをダウンロードしていましょう!
今回は、Chromeブラウザなので、chromedriverをダウンロードします。
その時に注意して欲しいのは、使っているChromeブラウザのバージョンと一致しているかどうかです。次の図で示したとおりですが、Chromeブラウザの設定>Chromeについて に書かれているバージョンと同じものを選びましょう!
ダウンロードするとzipファイルになっているので、解凍してお好みの場所で待機させておいて下さい。
ちなみに、condaやpipでもインストール出来るみたいです。。。
condaの人
conda install python-chromedriver-binary==87.0.4280.20
pipの人
pip install chromedriver-binary==87.0.4280.20
※「87.0.4280.20」の部分はバージョンなので、適宜設定して下さい。
これで準備は完了です!
使い方
モジュールインポート
では早速使って行きましょう!
お決まりのモジュールのインポート
from selenium import webdriver
driverの読み込み
まずは操作対象となるdriverをプログラム上に読み込みます。
driver = webdriver.Chrome("chromedriverを置いたところのPATH")
“chromedriverを置いたところのPATH”の部分には、先程ダウンロードして解凍した”chromedriver.exe”ファイルのPATHを指定します。
僕の場合は、EXCELVBAでもSeleniumを使っていますので、chromedriver.exeは次の場所にあります。
「C:\Users\ユーザー名\AppData\Local\SeleniumBasic\chromedriver.exe」
なので、次のようになりますね。
driver = webdriver.Chrome(r"C:\Users\ユーザー名\AppData\Local\SeleniumBasic\chromedriver.exe")
※引数のところ「r」付いてるんでご注意下さい。
WEBサイト開く
次は、WEBサイトを開きます。
Google先生でも開いてみましょうか。
driver.get('https://www.google.co.jp')
getメソッドで開きます。引数には開きたいサイトのURLを指定します。
ここまでやりましょう。
実行する一連のコードは以下です。
from selenium import webdriver
# chromedriverの読み込み
driver = webdriver.Chrome(r"C:\Users\tomom\AppData\Local\SeleniumBasic\chromedriver.exe")
# Google先生を開く
driver.get('https://www.google.co.jp')
実行動画です。
※10行目に「time.sleep(1)」とあるのは、プログラムが終わってしまうと立ち上げたブラウザが閉じてしまうので止めるために入れてるだけです。
上手くGoogle先生が立ち上がりましたね(^o^)
今回は初めの1歩ということでここまでです!
続きをお楽しみに~☆
コメント