はじめに
Daiさんのnoteを購入したのでチャレンジしようと思ったけど、そもそもスクレイピングの知識がないのでまずはSeleniumを使ってみます。これでぼくもスケベに足を突っ込むわけですね、ぐへへ。
noteはこちら→スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します
環境
-OS X 10.11.1
-Python 3.6.3
事前準備
##Seleniumインストール
Seleniumは使ったことがないのでインストールします。
これでWeb操作を自動化できるようになります。
pip3 install selenium
##Google Chrome Driverのインストール
ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要があるとのこと。
公式サイトからダウンロードします。
ダウンロードしたzipを解凍して中のファイルをPATHが通っているフォルダに移動して実行権限をつけます。
mv desktop/chromedriver /usr/local/bin/
chmod +x /usr/local/bin/chromedriver
#実験
クロームを起動して自分のブログを開いてみます
from selenium import webdriver
#ブラウザオープン
driver = webdriver.Chrome()
#URLを指定してWebページを開く
driver.get("https://norinorinozakki.hatenablog.com/")
次はHTMLの要素からなんか取得しましょう。とりあえず記事のタイトルとかにしますか。
ちなみにChromeの開発者ツールはMacだと[Command+Option+I]で開けます。
該当箇所を調べると…
というわけでこんな感じで書きました。
ARTICLES = "h1.entry-title"
TITLE = ".entry-title-link.bookmark"
articles = driver.find_elements_by_css_selector(ARTICLES)
#記事数表示
print(len(articles))
#記事名出力
for article in articles:
title = article.find_element_by_css_selector(TITLE)
print(title.text)
結果
6
Python学習中
ラズパイでTweepy
ラズパイでLチカ(Python)
ラズパイ3を買ってきた
Mac上で仮想環境を作ってみる
思い立ったがなんとやら
というわけで成功です!
これを女優一覧のサイトに置き換えれば名前が取れるというわけですね。
感想
そもそもHTMLとCSSの知識がないので苦しみました。
そっちもインプットしていきたいと思います。
#参考URL
下記の記事を参考にさせていただきました、ありがとうございます!
PythonでSeleniumを使ってスクレイピング (基礎)
Seleniumクイックリファレンス