这段时间由于要做一个系统,时间比较忙,博客更新的就不及时,有点抱歉,还是说今天的话题把:因为要抓取一些google上面的搜索结果数据,开始用的是python传统的获取数据的方法比如:[python beautifulsoup多线程分析抓取网页] , [python SGMLParser] 来获取数据,后来采集了没多久,google就自动封掉了,期间尝试过换IP,模拟浏览器的方法用了一段时间还是不行,看来google防止抓取的功能太强了,正愁没思路的时候,偶然间在网上看到一个方法就是用google提供的api来或者结果,这样省时又省力,于是乎就研究起来了,最后10几行代码就搞定了,之前我写了上百行代码,看来有了python google api来做python 抓取google搜索结果还是挺爽的。

废话少说上代码:

import urllib2,urllib
import simplejson

seachstr = '汽车'

for x in range(5):
    print "page:%s"%(x+1)
    page = x * 4
   
    url = ('https://ajax.googleapis.com/ajax/services/search/web'
                  '?v=1.0&q=%s&rsz=8&start=%s') % (urllib.quote(seachstr),page)
    try:
        request = urllib2.Request(
        url, None, {'Referer': 'http://www.sina.com'})
        response = urllib2.urlopen(request)

    # Process the JSON string.
        results = simplejson.load(response)
        infoaaa = results['responseData']['results']
    except Exception,e:
        print e
    else:
        for minfo in infoaaa:
            print minfo['url']

这样就可以根据搜索关键词把搜索结果列表的网址给提取出来,这个 api url可以接受很多参数,如果想去了解的话,可以看看具体的python google api 文档。


python视频教程