googleの検索結果を自動で表示するPythonコード
Pythonプログラミングのサンプルコードを見ていきます。以下のコードは、Googleで指定されたキーワードを検索し、検索結果の上位5件のリンクを自動で開くものです。
import requests
import sys
import webbrowser
import bs4
print('googling...') # 検索中...
# Googleで検索クエリを作成
res = requests.get('https://www.google.co.jp/search?q=' + ' '.join(sys.argv[1:]))
res.raise_for_status()
# BeautifulSoupを使ってHTMLをパース
soup = bs4.BeautifulSoup(res.text, 'html.parser')
link_elems = soup.select('.r a')
# 上位5件のリンクを開く
num_open = min(5, len(link_elems))
for i in range(num_open):
webbrowser.open('https://www.google.co.jp' + link_elems[i].get('href'))
BeautifulSoupのバージョンの違いやグーグル検索結果の要素のclass名などが変わる可能性があるので、将来的に動かなくなっている可能性があることに注意してください。
プログラムコードの解説
requests.get()
このメソッドを使用して、指定したURLのwebページをダウンロードします。コマンドライン引数(sys.argv[1:])を使って、プログラマーが任意に入力したキーワードをGoogleの検索クエリに結合しています。
raise_for_status()
ダウンロードが成功したかどうかをチェックし、成功していなければエラーを発生させます。
bs4.BeautifulSoup(res.text)
BeautifulSoupを使って、ダウンロードしたwebページのHTMLを解析します。
.select(‘.r a’)
class
名が「r」
の<a>
タグ要素を選択してリストにします。これにより、検索結果のリンクを取得できます。
min()
上位5件までのリンクを開くために、リンク数と5のうち、小さい方を選択します。
.get(‘href’)
get()関数に「href」を渡すとリンクのurlが取得できます。webbrowser.open()によって、検索結果のリンクが開かれていくことになります。
まとめ
このサンプルコードは、webスクレイピングと呼ばれる自動化のテクニックの一部です。実際のwebスクレイピングはもっと複雑であり、HTMLやCSSの知識が必要になることもあります。このコードが理解できたら、より高度なスクレイピングを学ぶこともおすすめです。また、webスクレイピングは利用規約違反になる場合もあるので、利用する際は注意が必要です。
コメント