google ColaboratoryでSeleniumを使う

pythonについて、pip?? ライブラリ?? っていう感じの方は、さくっと先に学習した方が効率がいいと思いますので、勉強する気があれば、こちらが圧倒的にオススメです。
初歩的なことは全て網羅されています!

seleniumについて,「chrome driverインストール??何か不安やなぁ。」という方は、
こちらをどうぞ
初めから説明を聞いてみると思っていたより簡単に理解できます!

目次

!pipでライブラリ一覧を確認

ちょっと長いので「S」の部分だけスクショしました。

その他、ライブラリは下記のものがありました。(かなり一部だけ抜粋)

  • numpy
  • pandas
  • sklearn
  • tensorflow
  • tweepy
  • matplotlib
  • Keras
  • Flask
  • Jinja2
  • beautifulsoup4

たくさんのライブラリが既に使える様になっている為、
大変な環境構築なしに、かなりお手軽に使えそうです。

seleniumをインストール

現時点では、seleniumは入っていないので自分で入れるしか無さそうです。

pipコマンドが使えるので、pipの前に ! を付けてインストールしましょう。

!pip install selenium

見にくくて申し訳ないですが、seleniumが新たに入ったのが確認できます。

colaboratoryは親切。(笑)

ライブラリ一覧の表示は、

!pip freeze

なのですが、間違えて実行してしまいました。。

“frezze”は知りません。多分、”freeze”じゃないですか??
すごい親切です笑

更に、エラーが出ると「stackoverflow」へのリンクが貼ってある、ボタンが出現!!
クリックすると、Errorが出ている内容に合致するstackoverflowへ飛ばしてくれる!!

もー神としか言いようがないです笑

chromium-chromedriverをインストール

aptでupdateとinstall + cp

下記のコードを実行。(コマンド操作なので先頭に ! をつけてください!!)

!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

1行目の「!apt-get」これは、-getいるのかな??
どうなんだろうか??

失敗。(汗)

driver = webdriver.Chrome()
driver.get('開きたいURL')

jupyter notebookでいつもこうしていたのに、

unknown error: DevToolsActivePort file doesn't exist.......crash.

というエラーで苦戦。。

optionsをつける

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',options=options)
driver.get("https://enjoy-a-lot.com/")  //ここはご自身のサイトで試してください。
title = driver.find_element_by_class_name('logo-header')
print(title.text)

これで、自分のサイト( web_log )のタイトルを取得できました!!

コードの全容( まとめ )

!pip install selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome('chromedriver',options=options)
driver.get("https://enjoy-a-lot.com/")
title = driver.find_element_by_class_name('logo-header')
print(title.text)

// printの中身は「 web_log 」となりましたー!!

実際の動きを動画で確認

参考サイト( ありがとうございましたm(_ _)m )

https://qiita.com/Ningensei848/items/a7daa6ee4ef692a3d65e

https://qiita.com/ftoyoda/items/fe3e2fe9e962e01ac421

https://stackoverflow.com/questions/50790733/unknown-error-devtoolsactiveport-file-doesnt-exist-error-while-executing-selen

注意事項

スクレイピング により、サーバーに過剰な負荷をかけしまい高額な損害賠償を請求された事例もあるようですので、ご自身のサイトで実験するに留めて下さい!

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次