7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Seleniumを使ってみた

Posted at

はじめに

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のインストール
ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要があるとのこと。
公式サイトからダウンロードします。
スクリーンショット 2018-04-01 0.06.28.png

ダウンロードした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/")

成功!
スクリーンショット 2018-04-01 0.25.29.png

次はHTMLの要素からなんか取得しましょう。とりあえず記事のタイトルとかにしますか。
ちなみにChromeの開発者ツールはMacだと[Command+Option+I]で開けます。
該当箇所を調べると…
スクリーンショット 2018-04-01 1.53.49.png

というわけでこんな感じで書きました。

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クイックリファレンス

7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?