PythonでのSeleniumの使い方|PythonからGoogleChromeの自動操作を行う方法を紹介
- システム
エンジニア - PythonでのSeleniumは何ができるのですか。
- プロジェクト
マネージャー - Seleniumを使うとブラウザの自動操作が行えます。それでは、PythonからGoogleChromeの自動操作を行う方法をご紹介いたしましょう。
PythonでのSeleniumの使い方とは?
今回は、PythonでのSeleniumの使い方について説明します。Seleniumを使うと、ブラウザの自動操作が行えます。基本的な使い方から、Google検索結果の一覧取得について紹介します。
興味のある方はぜひご覧ください。
開発環境
Windows10でPython 3.7を使って開発します。ブラウザはGoogle Chrome(以下、Chrome)を使用します。また、ライブラリは以下をインストールしておいてください。
1
2
|
selenium 3.141.0
chromedriver-binary-auto 0.1
|
基本的な使い方
SeleniumでChromeを動かしてみます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
from selenium import webdriver
import chromedriver_binary
# ChromeOptionsを設定
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--proxy-server="direct://"')
options.add_argument('--proxy-bypass-list=*')
options.add_argument('--start-maximized')
options.add_argument('--kiosk')
# Chromeを起動
print('Chromeを起動中...')
driver = webdriver.Chrome(options=options)
# 指定したURLに遷移
driver.get('https://www.google.co.jp/')
# Chromeを終了
driver.quit()
|
実行すると、Chromeが起動してGoogleにアクセスしていることが分かります。起動したChromeには「Chromeは自動テスト ソフトウェアによって制御されています。」というメッセージが表示されます。
webdriverの情報取得
webdriverの情報を取得する方法を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
from selenium import webdriver
import chromedriver_binary
# ChromeOptionsを設定
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--proxy-server="direct://"')
options.add_argument('--proxy-bypass-list=*')
options.add_argument('--start-maximized')
options.add_argument('--kiosk')
# Chromeを起動
print('Chromeを起動中...')
driver = webdriver.Chrome(options=options)
# 指定したURLに遷移
driver.get('https://www.google.co.jp/')
# タイトル表示
print(driver.title)
# URL表示
print(driver.current_url)
# ページソース表示
print(driver.page_source)
# Chromeを終了
driver.quit()
|
実行すると、コンソールに以下のように表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
Google
https://www.google.co.jp/
<html itemscope="" ...(中略)
<pre>
アクセスしたページのタイトルやURL、ページソースなどが取得できます。
<h3>検索結果一覧の取得</h3>
Googleでキーワード検索し、検索結果の1ページ目の一覧を取得してみます。実際のソースコードを見てみましょう。
<pre class="prettyprint">
import time
from selenium import webdriver
import chromedriver_binary
# ChromeOptionsを設定
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--proxy-server="direct://"')
options.add_argument('--proxy-bypass-list=*')
options.add_argument('--start-maximized')
options.add_argument('--kiosk')
# Chromeを起動
print('Chromeを起動中...')
driver = webdriver.Chrome(options=options)
# 指定したURLに遷移
driver.get('https://www.google.co.jp/')
# 検索文字列を入力
search_bar = driver.find_element_by_name("q")
search_bar.send_keys("Python Selenuim")
# 3秒待機(入力した文字が見えるように)
time.sleep(3)
# 検索を実行
search_bar.submit()
# 検索結果のタイトルとURLを取得
for element in driver.find_elements_by_xpath('//a/h3'):
element_a = element.find_element_by_xpath('..')
print(element.text)
print(element_a.get_attribute('href'))
# 3秒待機
time.sleep(3)
# Chromeを終了
driver.quit()
|
実行結果は以下のようになります。※検索時のランキングに応じて結果は変わります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
Python + Selenium で Chrome の自動操作を一通り - Qiita
https://qiita.com/memakura/items/20a02161fa7e18d8a693
10分で理解する Selenium - Qiita
https://qiita.com/Chanmoro/items/9a3c86bb465c1cce738a
【完全版】PythonとSeleniumでブラウザを自動操作 ...
https://tanuhack.com/selenium/
Selenium入門 Pythonでブラウザを自動化したい方必読! | AI ...
https://aiacademy.jp/media/?p=346
図解!PythonでSeleniumを使ったスクレイピングを徹底解説 ...
https://ai-inter1.com/python-selenium/
PythonとSeleniumを使ったブラウザ自動操作 – 名古屋のWeb ...
https://www.inet-solutions.jp/technology/python-selenium/
PythonでSeleniumを利用してWebサイトのログインを自動化 ...
https://techacademy.jp/magazine/28392
PythonでSeleniumを操作する — Selenium Python Bindings 2 ...
https://kurozumi.github.io/selenium-python/index.html
Selenium with Python — Selenium Python Bindings 2 ...
https://selenium-python.readthedocs.io/
Pythonでブラウザを自動操作する方法 | ガンマソフト株式会社
https://gammasoft.jp/blog/python-browser-automation-by-selenium/
|
ソースコード中の「find_element_by_name(“q”)」について説明します。https://www.google.co.jp/にて、画面を右クリックし「検証」をクリックします。検索ボックス付近のHTMLを確認すると、以下のような記述があります。name=”q”とありますので、find_element_by_nameに”q”を指定して検索ボックスにキーワードを入力します。
1
|
P<input class="gLFyf gsfi" maxlength="2048" name="q" type="text" jsaction="paste:puy29d" aria-autocomplete="both" aria-haspopup="false" autocapitalize="off" autocomplete="off" autocorrect="off" autofocus="" role="combobox" spellcheck="false" title="検索" value="" aria-label="検索" data-ved="0ahUKEwjH6sGu6PzuAhUwwosBHUbrALEQ39UDCAY">
|
find_elements_by_xpathやfind_element_by_xpathについて説明します。検索結果一覧画面で右クリックし「検証」をクリックします。それぞれの検索結果について、h3タグの上にaタグがあります。また、href属性でURLが記載されています。これらの情報をもとに、入力します。
- システム
エンジニア - PythonでのSeleniumの基本的な使い方やGoogle検索結果の一覧の取得方法についてよく分かりました。
- プロジェクト
マネージャー - ご紹介した方法を参考にして、ご自身でもソースコードを書いてみてください。
まとめ
いかがでしたでしょうか。PythonでのSeleniumの使い方について説明しました。Seleniumを使うと、ブラウザの自動操作が行えます。基本的な使い方から、Google検索結果の一覧取得について紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Python新着案件New Job
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都豊島区(池袋駅) -
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都豊島区(池袋駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)