【Python】【Selenium】インストール~セットアップ

概要

Python スクリプトを使って、ログインが必要なサイトからスクレイピングするための準備として Selenium をインストールする。
 

環境

  • Ubuntu 18.04
  • Python 3.6

留意事項

PhantomJS は使用せずに、Chrome か Firefox を使うこと

こちらのサイト様の情報より。
2018年3月時点ではすでに PhantomJS のサポートは終了している。
従って、今後は Headless Chrome を使うことが正しいとのこと。
実際に PhantomJS を使うと以下のような警告ログが出る。

/home/neko/.local/lib/python3.5/site-packages/selenium/webdriver/phantomjs/webdriver.py:49: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
  warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

 

準備手順

1. Selenium をインストールする

% pip install selenium

pip が無ければ「sudo apt install python-pip」でインストールすること。
 
 

2. Google-Chrome のインストール

こちらを参照。
 

3. Google Chrome Driver (chromedriver) のインストール

こちらを参照。
 
インストールを行い、以下のように動作していればOK。

% chromedriver 
Starting ChromeDriver 2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7) on port 9515
Only local connections are allowed.

 

4. Chrome が headless で動作していることを確認する

確認時は https://yahoo.co.jp などメジャな https サイトでテストすると良い。*1

% google-chrome --headless --disable-gpu --dump-dom https://yahoo.co.jp

 

動作確認プログラム

はてな のトップページにアクセスして、スクリーンキャプチャを得る。(aaa.png というファイル名で出力する)

test_chrome_headless.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*- 
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

loginUrl = "https://www.hatena.ne.jp/login"
username = ""
password = ""

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')

browser = webdriver.Chrome(chrome_options=options)
browser.get(loginUrl)

#print(browser.page_source)
browser.save_screenshot('aaa.png')



*1:CA がいない https 接続先をテスト対象にしない方が良い。