【解決】どうしてもpythonによるブラウザ起動がうまく動かなかったけど | 本日もサルーな気持ち

本日もサルーな気持ち

卵型類人猿、生態と思索、現実と虚構のハザマ。でもサル。アバターがサル。

プログラミングのお勉強の続き。

 

いきなり落とし穴のドツボにハマったpythonによるブラウザ自動化失敗問題であるが、とりあえず1か月以上経過してようやく解決の糸口にたどり着いた。

 

一般的なコードはこうなっている。

 

from selenium import webdriver

driver=webdriver.Chrome()

 

たったこれだけでChromeが起動するという(selenium と chromedriver をちゃんとインストールしている場合)。

と、どこにでも書いてあるし、YouTubeでもそう言っている人が多い。

 

俺もやってみたけど、実際にはselenium君が、chromedriver見つけられないよ、というメッセージが出てエラーとなる。

 

seleniumの公式ページには、これは昔から初心者にありがちな現象とのこと。

ここを突破しないと俺のやりたいことが実現できない。

 

あーだこーだ試してみたり、調べ上げてみたり、いろいろやってみたけど全然ダメでw

 

結局のところWeb上で次のような情報を得た。

 

・Windows環境だと、上記のコードではうまくいかない場合がある

・その場合、web driver managerというパッケージを別にダウンロードして、コードで「毎回chromedriverのちょうどエエやつ」を探し出してきてインストールせいや、という命令にする

 

とのことだったので、マネしてみたらあっさり動いた。

あああ~もうタラー

 

この情報、実はちゃんと調べていればWeb上でもYouTubeでも出てくるんだけど、今まで見逃していた。デヘハート

 

以下は、そのヒントとなったページのほぼ丸写しなんだけど、こうなります。

 

【正解:こうしたら動いた】

 

from selenium import webdriver


from selenium.webdriver.chrome.service import Service as ChromeService


from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

driver.get("表示したいWebページurl")

 

毎回最新のchromedriverをインストールするので時間がかかるんだけど、こうしておくとChrome本体がアップデートしても、勝手にちょうどエエドライバを入れてくれるんで、楽らしい。

 

それでちょっと気になったのはドライバのタイプで、公式ダウンロードサイトには64bit用と32bit用があって、俺のシステムは64bitだったので当然64にしたんだけど、

上記の方法でコードにお任せ状態にしたら、32bitのやつをインストールしてやがんの??

 

よくわかんねえ。

でもこれで動いているから良しとする。

 

深く考えないで次に行くよ。