【Python】selenumライブラリでChromeを起動する(Webスクレイピングの準備)
Pythonでスクレイピングを行う場合、Javascriptで生成されたWebページが増えてきたこともあり、requestsライブラリだけでは捕まえられないケースが多くなってきました。
これを解決するのにselenumライブラリを使ってブラウザを操作することになります。
今回はselenumライブラリのインストールからブラウザの起動までを説明したいと思います。
目次
Seleniumのインストール
まずはpipコマンドでSeleniumライブラリをインストールします。pipコマンドは以下の通り。
pip install selenium
Chromeのバージョン確認
次にChromedriverをインストールする必要があるのですが、ダウンロードファイルがバージョンごとに異なるため、あらかじめChromeのバージョンを確認する必要があります。
ブラウザメニューの「ヘルプ」ー「Google Chromeについて」を選択します。
すると、以下のようにバージョンが確認できます。これを控えておきましょう。今回は「110.0.5481.100」でした。
Chromedriverのインストール
Chromedriverをインストールします。以下のサイトに行きましょう。
https://chromedriver.chromium.org/downloads
先ほど控えたChromeのバージョンに近いバージョンを探します。見つかったらクリックしましょう。
以下のようなページが現れるのでOSに合ったリンクをクリックしてダウンロードします。
ダウンロードして解凍した結果、2ファイルありました。これをPythonプログラムと同じフォルダ内に移動すれば準備官僚です。
ソースコード
ソースコードはこちら。まずは単純にChromeブラウザを立ち上げるためのプログラムです。最後のinput文は処理を一旦止めるためのもので、これがないとプロセス終了とともにブラウザもたち下がってしまうからです。
from selenium import webdriver driver = webdriver.Chrome('chromedriver') print(driver.title) # プロセスを一旦停止するため input('press any key to finish :')
実行結果
実行結果は以下の通りです。ブラウザに「Chromeは自動テストソフトウェアによって制御されています」と表示されます。
URLを指定してブラウザを起動する
今度はURLを指定してページを開いてみましょう。ソースコードは以下のとおりです。 Yahoo!Japanのページを開いてみます。
from selenium import webdriver driver = webdriver.Chrome('chromedriver') driver.get('https://www.yahoo.co.jp/') input('press any key to finish :')
結果はご覧の通りです。
ブラウザをバックグランドで起動する方法
最後にブラウザをバックグランドで起動するようにします。目的はWebスクレイピングなのでブラウザがいちいち開くのは余計です。
その場合はChromeDriverのChromeOptionsクラスを利用し、起動時のオプションにheadlessを追加します。バックグランド起動でうまく言ったかわからないためにページタイトルを出力させます。
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') driver = webdriver.Chrome('chromedriver',options=options) driver.get('https://www.yahoo.co.jp/') print(driver.title) input('press any key to finish :')
実行結果は以下の通りうまく行きました。
スポンサーリンク