目次
googleの検索結果をひたすら表示するスクレイピングコード
googleで検索したいキーワードがあるときに、キーワードを自分で決めて、それをプログラムで開くようにするとはやくWEBページを開けるというものです。(今回のプログラムはテキスト形式での表示のみ)
利用するPythonのモジュール
- requestsモジュール
- bs4モジュール
googleで検索してみるとわかるのですが、あるキーワードがあったときにURLは決まった形になっていて、それをプログラムで指定してやると、数ページ分のリンクをいっきにひらくことができたりします。
googleの検索結果を一気に表示するプログラムコード
import requests, bs4 def searchreturn(search_word): google_page = [] for i in range(0,50,10): page = '&amp;amp;amp;start={}'.format(str(i)) google_page.append(page) count = 1 page_num = 1 for page in google_page: res = requests.get('https://www.google.co.jp/search?q=' + search_word + page) res.raise_for_status() soup = bs4.BeautifulSoup(res.text) elems = soup.select('.r') elems_a = soup.select('.r < a') print(str(count) + 'ページ目を表示します') print('\n') count += 1 for i in range(len(elems)): print(str(page_num) + '---' + elems[i].text) print('https://www.google.co.jp' + elems_a[i].get('href')) print('\n') page_num += 1 searchreturn('dos攻撃')
結果的にはこんな感じになります。
別に普通に検索すればいいんじゃね?とすればそれまでですが。
まとめ: これはスクレイピング?
スクレイピングは特定のデータを掘り起こして→データ分析につなげるのが主流みたいです。しかも仮にこんな感じでひっぱってきても、結果的はあまり効率はよくなっていない気はします。あと問題点としてrequests+bs4は早いとは思いますが、多分遅いです(どっち?)for文使いまくったら遅くなるらしいです。