百度在搜索上跟google还是有很大差距的,尤其是google支持很多搜索语法,非常强大。所以这里这里写了个简单的获取google搜索结果的脚本。但是google做了防爬取限制,使用一般的正则匹配是不行的,这里用的是google的ajax的接口,但是使用起来还是有些问题,没有完全解决。
获取google搜索结果的Python代码#! /usr/bin/env python
#coding=utf-8
import urllib2,urllib
import msvcrt
import simplejson
import sys
def CatchURL(key,num):#抓取链接
url = ('https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s&rsz=8&start=%s') % (key,num)
try:
request = urllib2.Request(url)
response = urllib2.urlopen(request)
results = simplejson.load(response)
URLinfo = results['responseData']['results']
except Exception,e:
print e
else:
for info in URLinfo:
result.append(info['url'])
def RemoveRepeat(List):#列表去重
New_List = []
for i in List:
if i not in New_List:
New_List.append(i)
return New_List
def save(List):
f = open("result","w")
for i in List:
f.write(i+"\n")
f.close()
if __name__ == '__main__':
searchstr = raw_input()
pagenum = input()
result = []
for i in range(1,pagenum+1):
CatchURL(searchstr,i)
result = RemoveRepeat(result)
save(result)
print "DONE!"
运行程序,第一行输入搜索的内容,第二行输入搜索的页数,然后会在程序同目录下生成result文件,里面是获取并且去重后的url,但是程序运行的时候可能会出现如下的情况.
那是因为google检测到非正常的请求,导致无法获取搜索结果,暂时未能解决。
原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/2046.html
评论列表(96条)
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试老刀的bbs
测试
求带