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