Googleの検索結果数を取得するサンプル
披露宴用のプロフィールビデオ作ったりして寝不足なbonlifeです…。
Googleの検索結果数を取得するサンプル(id:neko_trap:20071206:1196957909)が紹介されていたので、試してみたところ、なんだか上手く動作しませんでした。bタグをチェックしてるのですが、その出現場所が検索オプションの設定次第で変わるみたい。
ということで、別案。"絞り込み検索"のURLに検索結果数が含まれているのを利用してみました。
# -*- coding: utf-8 -*- import re import urllib2 urlopener = urllib2.build_opener() urlopener.addheaders = [('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] g_url = "http://www.google.co.jp/search?hl=ja&num=100&q=" q_list = raw_input("query: ") q_list = unicode(q_list, 'utf-8') q_list = q_list.split() def gen_q_num(q_list): for query in q_list: query = urllib2.quote(query) url = g_url+query html = urlopener.open(url).read() m = re.search('swrnum=(\d+)',html, re.M | re.S) yield {'query':query,'q_num':int(m.groups()[0])} for result in gen_q_num(q_list): print "%s\t%d" % (result['query'],result['q_num'])
超シンプルな正規表現でグリグリっと。以下のような感じで検索結果数が出力されます。
> hoge.py query: hoge hage hoge 2810000 hage 1290000
BeautifulSoup使ってる例に比べるとダサい感じがしますが、まぁ、良いや。シンプルイズなんちゃら、ということで。(本当はAPI使おうと思ったのですが、知らないうちに時代は「Google SOAP Search API」から「AJAX Search API」に変わってたのね…。)