pythonで自動化

【python×selenium】Googleの検索結果一覧からタイトルを取得する

本記事の要約

Googleでの検索結果から記事のタイトルを抽出するプログラムを書いたので紹介する。

プログラムの内容は、指定していたキーワードでのGoogle検索結果をseleniumを用いてスクレイピングし、1ページ目の記事のタイトルを抽出するものである。

実行環境

バージョン:python3.7.3

ドライバー:chrome driver

使用機器:macOS Mojave 10.14.6

 

Webスクレイピングは使用方法によってはWebサーバーに過度な負荷をかけ、迷惑になる場合があります。

過去にはスクレイピングが問題となったこともあります。

リクエストの頻度を落としたり、スクレイピングは1度で終わらせ何回も同じリクエストを送らないようにするなどサーバーに負荷をかけないように注意しましょう。

Googleの検索結果からタイトルを抽出する

ソースコード

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys

#setting search words
keywords = ['python','自動化']

#ready to search words
searchSentence = ''
for keyword in(keywords):
	searchSentence += (keyword + ' ')

#add return key for search faster
searchSentence += '\n'

waitTime = 2

driver = webdriver.Chrome()
url = "https://google.com"
driver.get(url)
time.sleep(waitTime)

inputBoxElement = driver.find_element_by_xpath('//*[@id="tsf"]/div/div/div/div/div/input')
inputBoxElement.send_keys(searchSentence)
time.sleep(waitTime)

titleElements = driver.find_elements_by_class_name('LC20lb')

#element change to text
#list can't change to text, so change one each
titles = []
for titleElement in(titleElements):
	titles.append(titleElement.text)

for title in(titles):
	print(title)

#finish selenium
driver.quit()

実行結果

$ python3 get_title_from_google.py

Pythonで毎日圧倒的に効率化している業務自動化術5選 【非エンジニア ...

Pythonの自動化でどんなことができるのかその全てを紹介する | 侍 ...

【Python】 Pythonで日常業務を自動化処理しよう | プログラミング入門なら ...

「退屈なことはPythonにやらせよう」で自動化ツールを作ってプログラミング ...

自動打刻システムを作ろう(Python+Selenium+Chrome) - Qiita

【まとめ】実務家が語るPythonのマーケティング活用例4選

Pythonによる自動化プログラムの事例 | ガンマソフト株式会社

エンジニアがPythonを使って自動化している4つのこと―退屈なことは ...

できる 仕事がはかどるPython自動処理 全部入り。 (「できる全部入り ...

Pythonで日常業務の自動化を実現する解説本「できる 仕事がはかどる ...

終わりに

本記事ではGoogleの検索結果から記事のタイトルを抽出するプログラムを紹介しました。

本記事では1ページ目の記事のみを対象としていますが、2ページ目以降を抽出することや他のキーワードで検索をすることもできます。

スクレイピングは便利なものですが、過度なスクレイピングはサーバーに負荷をかける原因となります。

リクエストの頻度を落としたりしてサーバーに負荷をかけないように工夫しましょう。