#はじめに
Pythonでスクレイピングする時のSeleniumについてまとめました。スクレイピングはかなり楽しいです。自分が使用した用途は、ショッピングの自動化、データの収集など他にも幅広い用途があります。
#環境
Windows10
Python
Selenium
自分が使用したい専用のブラウザのドライバー(例:ChromeDriver)
#Seleniumのインストール
まだ、Pythonの環境構築をしていない人はこちらをクリックして下さい。Pythonについての環境構築の仕方がの掲載されています。(Windows版)
Pythonの環境を既に構築している人は、Seleniumをインストールして下さい。
pip install selenium
#ブラウザのドライバーをダウンロードする
使用するブラウザに合わせたドライバーが必要になります。(例:ChromeDriver)
#PythonでSeleniumを使用してブラウザを開く
Seleniumを使用してブラウザを開きます。
from selenium import webdriver
driver = webdriver.Chrome() #()の中にdriver_pathを記述
driver.get(URL)
driver.close()
driver.quit()
まず、1行目でブラウザを開きます
2行目で開きたいURLを指定します
3行目はページを閉じます
4行目はブラウザを終了します
driver_pathは同じディレクトリの中にドライバーがある時には、記述しなくてokです。
#要素の取得
次に、ページの操作をするために必要な要素の取得です。
自分はよくこの二つを使用します。
id
get_id = driver.find_element_by_id("idをこの中に記述")
idは確実に取れてくるのでオススメです。
xpath
get_xpath = driver.find_element_by_xpath("xpathをこの中に記述")
画面が変更したりするとよく変更されるのでその都度xpathを記述しなおしてます。
そして、HTML上になくて取ってくることが出来ないけどあの値が欲しいという時にオススメなのがjsから取ってくることです。
price = driver.execute_script("jsの処理を記述")
上記のように記述することで、画面上に無いがjs側で処理している値を取得することができます。
jsにも無い時があるので、その時は諦めるしかないですね
#ボタンをクリックする
フォームのボタンをクリックしたい時などは、click()
でクリックすることができます。
driver.find_elemnt_by_id('idをこの中に記述').click()
上記の処理でボタンの要素をクリックすることができる。
#sleep処理を使用しよう
よく、要素が取れなくてエラーがでる時があります。そういう時にはsleep()
を使用して画面が表示されるのを待ちましょう。
#おわりに
他にも沢山のseleniumは使い方があるんですが、この記事ではみなさんにどんなことができるを知ってもらうために書きました。さらに詳しく知りたい人はどんどん他の人が書いた記事を見て知識を増やして下さい。そして、すべてを自動化させましょう‼
#参考
https://kurozumi.github.io/selenium-python/installation.html
https://qiita.com/nadechin/items/0a34e2182132cc1a821b