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']
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 文档。