qiitaをseleniumでスクレイピングしてみた


今回はmacでselenumを用いてやるので、windowsやLinuxを使っている方は適宜変更して試してみてください。
※pythonはインストールされている前提で話していきます。

Seleniumをインストールする

pip install selenium

WebDriverをダウンロードする

Seleniumを使うには、操作するブラウザに対応したWebDriverが必要なので、ダウンロードしていきます。
chrome用のwebdriverを使っていくので、他のブラウザを使いたい方は任意に変更してください。
いくつか方法があるので紹介していきます。

下記のリンクからダウンロード

chrome driver
ダウンロードしたファイルを任意の場所に展開して環境変数のPathを設定

Homebrewを使用してのインストール

macの方はこちらの方法が便利です。
brew cask install chromedriver

ここでの注意点はcask出ないとerrorになります。

任意のディレクトリでpythonファイルを作成

下記のコードをコピペしたら、実行してみてください。
ブラウザが立ち上がって、qiitaのトップページが表示されます。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://qiita.com/')

ここからまずはログインしないといけないので、どの方法でもいいのですが、
自分はgithubを使ってログインをします。

コードを追記していきます。
```
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://qiita.com/')

driver.find_element_by_css_selector('a.nl-SocialSignup.nl-SocialSignup-github').click()
```

ここまでで、githubのログイン画面までたどり着けます。
ここからメールアドレスや、パスワードを入力していくわけですが、
便利なメソッドが提供されているので、それらを使用していきます。
DOM操作とほとんど一緒なので、JSを少し触ったことがある方は馴染み易いと思います。

driver.find_element_by_id('login_field').send_keys('{メールアドレス}')

driver.find_element_by_id('password').send_keys('{パスワード}')

driver.find_element_by_css_selector('input.btn-block').click()

上記のコードで、メールアドレスとパスワードは自身のアカウント置き換えてください。

ここまでのコードを実行してあげれば、ログイン後の画面まで到達出来ると思います。
後は好きなように、ページの好きな要素を引っ張って来てCSVファイルに起こすのもの良し、
特定のカテゴリの記事内容をスクレイピングして来ても良いと思います。

これだけで、深層学習に必要なデータセットを収集しやすくなるので、便利です。

seleniumのリファレンスもweb上に上がっているので、適宜参照すればほとんどのことが出来ると思います。
seleniumリファレンス