Python

【Python】SeleniumでGoolge検索結果から情報取得してみた

本記事では、selenium(セレニウム)を利用した簡単なweb自動操作をまとめていきます。
今回は、seleniumuでGoogle検索を行い、検索結果の一番上にあるサイトのタイトル、URL、ディスクリプションデータを取得してみたいと思います。

初めての方へ

以前、Seleniumuの入門として書いた記事がありますので参考にしてみてください。
※ライブラリインストールの箇所だけ見てもらえれば本記事は問題なく進められます。

Selenium活用
【Python】seleniumを使ってwebサイトの自動操作してみた -ブラウザ起動編-本記事では、selenium(セレニウム)を利用した簡単なweb自動操作をまとめていきます。 まずは、webブラウザの起動例をもとに動...

【前提】動作環境

作業エディタ: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ツールで確認できます。(*画像参照)

 Chrome検証

該当箇所は、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、ディスクリプションデータを取得してみました。画面上からデータ取得する方法として、少しでも参考になっておりましたら幸いです。

ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。