Python スクレイピングプログラムについて、モジュール化など改善を進めていきます。
・pip installで、「pip3」にしておらず、「pip3」で実行しエラーになりました。「pip3 install」にして解決しました。
・seleniumについて
chromeのバージョンに合致したバージョンのドライバーをインストールしないといけません。
pip3 install chromedriver-binary=={106.0.5249.119}
・seleniumのライブラリをインポートするだけでエラーが出ました。
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(‘/Applications/chromedriver’)
seleniumのバージョンが合っていないらしいです。
また、Chromeのバージョンは最新でしたが、更新してから再起動しておらず、更新が反映されていないらしいです。
Chromeを再起動したらバージョンが変わりました。
表示は正しいが、再起動で更新が反映され最新バージョンになったようです。
それでもエラーというかDeprecationWarningの警告が出るので、ネットで出なくなるというコードを参考にしました。
・目的のURLにアクセスすると以下のようなエラーが出る
Checking if the site connection is secure
needs to review the security of your connection before proceeding.
上記はSSL証明書のエラーらしいです。
これを無視するコードを探しましたが中々見つかりませんでした。
以下のようにプロファイルの設定を修正すればできるらしいですが、どう記述すればいいのかわかりませんでした。
profile = webdriver.FirefoxProfile()
ドライバーのファイルパスを指定するのと、プロファイルを指定、設定することが同時にできません。
旧型の記述で両立しても警告が出ました。
selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.
参考コードでプロファイルを設定してSSL証明書を無視しても目的のサイトが見れませんでした。
profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
profile.assume_untrusted_cert_issuer = False
driver = webdriver.Firefox(firefox_profile=profile)
・firefoxプロファイル指定したらいいのかと思ったがそれをやろうとしたら指定できない
プロファイルがあるというフォルダを見てもそれらしきファイルがないので、何を指定していいのかわかりませんでした(後日解決)。
・navigator.webdriver=true のせいでseleniumということが相手にわかってアクセスが拒否される?
色々と記述できるコードを探したが中々見つかりませんでした
・上記で何時間もハマったため、seleniumは一時ストップした