本記事では、selenium(セレニウム)を利用した簡単なweb自動操作をまとめていきます。
今回は、seleniumuでGoogle検索を行い、検索結果の一番上にあるサイトのタイトル、URL、ディスクリプションデータを取得してみたいと思います。
初めての方へ
以前、Seleniumuの入門として書いた記事がありますので参考にしてみてください。
※ライブラリインストールの箇所だけ見てもらえれば本記事は問題なく進められます。

【前提】動作環境
作業エディタ:VSCode
OS:MacOS 11.5
Pythonバージョン:Python3.9.5
WebDriverバージョン:92.0.4515 (*)
Chromeバージョン:92.0.4515 (*)
※(*):ソース内で最新バージョンを取得するため気にせずOK!
Step1:webブラウザを自動起動
実際に下記ソースコードを参考にして、webブラウザを自動で起動してみましょう。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# ブラウザを起動
browser = webdriver.Chrome(ChromeDriverManager().install())
実行してみると、「Chromeは自動テストウェアによって制御されています。」と上部に表示されたChromeが自動的に立ち上がるかと思います。
Step2:指定したURLに自動アクセス
次に、立ち上げたブラウザ内で指定したURLに自動的にアクセスするようにしてみたいと思います。Googleのサイトに遷移したら成功です。
# 指定のURLにアクセス
browser.get('https://www.google.com/')
Step3:検索キーワードを入力
Googleにアクセスできたら、検索ボックスの要素を特定し、検索キーワードを格納して検索処理を実行します。
※今回はClass名から要素を特定する方法としています。
# 検索入力ボックスを特定する
search_box = browser.find_element_by_class_name("gLFyf")
# 検索キーワードを入力し、検索実行
search_box.send_keys(KEYWORD + Keys.ENTER)
Keys.ENTERを利用するためには、事前に下記宣言をしておく必要がありますのでご注意ください。
from selenium.webdriver.common.keys import Keys
要素の特定方法
検索ボックスの要素を特定するためにはページのHTMLソースを確認する必要があります。Chromeの場合、右クリック > 「検証」> Developtツールで確認できます。(*画像参照)

該当箇所は、Developツールの左上にあるマークをクリックし、ページの該当箇所にマウスを合わせることで確認することができます。(*画像参照)
※本記事では、該当箇所のClass名を利用しております。

Step4:検索結果から情報取得
Step3が完了すると検索結果が表示されているはずですので、一番上に表示されているサイト情報を取得していきます。
※要素の特定方法は、Step3の「要素の特定方法」を参考にしてください。
# サイトタイトルを取得
site_title = browser.find_element_by_class_name("LC20lb").text
# サイトURLを取得
site_url = browser.find_element_by_class_name("TbwUpd").text
# サイトディスクリプションを取得
site_description = browser.find_element_by_class_name("VwiC3b").text
print('サイトタイトル:' + site_title)
print('サイトURL:' + site_url)
print('サイトディスクリプション:' + site_description)
【結果】実行結果
>>> サイトタイトル:LUSKNOTE 現役エンジニアのジョブハックをまとめて紹介し ...
>>> サイトURL:https://lusknote.com
>>> サイトディスクリプション:【Python】seleniumを使ってwebサイトの自動操作してみた -ブラウザ起動編-. 2021年8月5日 lusk. LUSKN
ソースコードまとめ
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
# 検索キーワード
KEYWORD = "lusknote エンジニア"
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get('https://www.google.com/')
search_box = browser.find_element_by_class_name("gLFyf")
search_box.send_keys(KEYWORD + Keys.ENTER)
sleep(2)
site_title = browser.find_element_by_class_name("LC20lb").text
site_url = browser.find_element_by_class_name("TbwUpd").text
site_description = browser.find_element_by_class_name("VwiC3b").text
print(site_title)
print(site_url)
print(site_description)
browser.quit()
まとめ
本記事では、SeleniumuでGoogle検索を行い、一番上にあるサイトのタイトル、URL、ディスクリプションデータを取得してみました。画面上からデータ取得する方法として、少しでも参考になっておりましたら幸いです。