Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium】Seleniumの仕様変更によるwebdriver設定の変更内容について


PythonSeleniumを使ってWebスクレイピングする場合についてですが、Seleniumのwebdriver設定についての仕様が変更になっていたことについてです。 

 

webdriver設定に関してはいろいろとやり方はあると思いますが、これまではたとえば以下のようにしてやってきました(以下はGoogle検索を行う場合の例)。

 

from selenium import webdriver
from selenium.webdriver.chrome import service as fs
import os
from selenium.webdriver.common.by import By

path_driver = os.getcwd()+'\chromedriver.exe'
# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=path_driver)
driver = webdriver.Chrome(service=chrome_service)

#指定したURLに遷移する
driver.get("https://www.google.co.jp")

#Google検索窓を要素取得
element = driver.find_element(By.NAME, "q")

#検索窓に"abc"と入力
element.send_keys("abc")
#Enterキークリック
element.submit()

# タブを閉じる
driver.close()
driver.quit()
 

この中で最初の4行はimport文で、その次の4行でChromedriver設定を行っていました。

 

この場合、os.getcwd()はカレントディレクトリを指しているので同じディレクトリの中にChromeのドライバーchromedriver.exeは入れておきます。

 

これがSeleniumのVer.4.10以降ではエラーとなってしまいます(Ver.4.6以降でWarningが出る模様)。

 

Ver.4.10以降での代わりの記載方法としては以下のようになります。

(Ver.4.6以降であれば以下に変更したほうがいい模様です)
 
driver = webdriver.Chrome()
 
 
結果として、先程のGoogle検索を行うためのコードは以下のようになります。

 

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

#指定したURLに遷移する
driver.get("https://www.google.co.jp")

#Google検索窓を要素取得
element = driver.find_element(By.NAME, "q")

#検索窓に"abc"と入力
element.send_keys("abc")
#Enterキークリック
element.submit()

# タブを閉じる
driver.close()
driver.quit()
 

 

以上が、PythonとSeleniumを使ってWebスクレイピングする場合のseleniumの仕様変更によるdriver設定の変更内容についてになります。