【Python】Windows10でスクレイピングするための環境構築と方法【Selenium】

環境構築

windowsにPythonをインストール

Python3のインストール

こちらを参照してください。

 

コマンドプロントでSeleniumをインストールする

このコマンドを実行するとインストールされます。

pip install selenium

 

WebDriverをダウンロードする

公式サイトからChromeのWebDriverの最新版をダウンロード

 

 

最新版をクリック

 

するとこのような画面になるので「win32.zip」をクリック

 

ダウンロードが始まるので、終わったら解凍する。

 

解凍が終わったら「chromedriver.exe」を

任意の場所に移動させる。

 

今回はここ

C:\Users\ユーザー名\Desktop\Selenium

 

 

 

この際にchromeのバージョンを合わせないと動かない場合がある

chromeのバージョンアップ

1.chromeを開いて

2.右上のをクリック

3.ヘルプ(H)

4.Google chromeについて(G)

 

 

ここが現在のバージョンです。

勝手に更新が始まるので、完了したら再起動をします。

 

 

再起動後このようになっていれば成功です。

 

以上で環境の構築は終了です。

 

Seleniumでスクレイピングする

先ほど「chromedriver.exe」を保存した階層で作業します。

C:\Users\ユーザー名\Desktop\Selenium\test.py

を作成します。

 

 

内容は以下

# 1.Seleniumのwebdriverモジュールをインポート
from selenium import webdriver

# 2.操作するブラウザを開く
# /Users/ユーザー名/Desktop/Selenium/chromedriver
driver = webdriver.Chrome('/Users/takahashi/Desktop/Selenium/chromedriver.exe')

# 3.操作するページを開く
driver.get('https://www.google.co.jp')

# 4.timeモジュールのインポート
import time  
time.sleep(1)

# 5.class属性で指定する
driver.find_element_by_name('q').send_keys('わんこ')

time.sleep(1)

# 6.クリックする1
driver.find_element_by_name('btnK').click()

time.sleep(1)

# 7.クリックする2
driver.find_element_by_xpath("//*[text()=\"画像\"]").click()

time.sleep(1)



time.sleep(5)
driver.quit()

順に説明していきます

1.PythonでSeleniumのwebdriverモジュールをインポート

from selenium import webdriver

seleniumのwebdriverというモジュールを読み込んでいます。

おまじないみたいな感じです。

 

2.操作するブラウザを開く

先ほど保存した「chromedriver.exe」を指定します。

/Users/ユーザー名/Desktop/Selenium/chromedriver

driver = webdriver.Chrome('/Users/takahashi/Desktop/Selenium/chromedriver.exe')

 

3.操作するページを開く

今回はgoogleを表示させます。

driver.get('https://www.google.co.jp')

 

4.timeモジュールをインポート

サイトの読み込みを待つために1秒停止させる

import time
time.sleep(1)

 

5.class属性で指定する

driver.find_element_by_name('q').send_keys('わんこ')

driver.find_elementまでが決まり文句のようなもの

後ろの「by_name」で

html文のname「xxx」を指定できる

 

「name=q」に「わんこ」と入力する

 

という意味

 

デバッグモードで見るといい(F12で表示)

 

6.クリックする1

検索ボタンをクリックする

スリープ1秒

driver.find_element_by_name('btnK').click()

time.sleep(1)

 

7.クリックする2

表示された検索結果から画像に切り替える

スリープ1秒

driver.find_element_by_xpath("//*[text()=\"画像\"]").click()
time.sleep(1)

 

もっといろいろできるみたいなので調べていきます

 

Python, メモ

Posted by hapoopaka