python 抓取google搜索结果

   这段时间由于要做一个系统,时间比较忙,博客更新的就不及时,有点抱歉,还是说今天的话题把:因为要抓取一些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)