当前位置:  开发笔记 > 编程语言 > 正文

为什么Google搜索会返回HTTP错误403?

如何解决《为什么Google搜索会返回HTTP错误403?》经验,为你挑选了2个好方法。

请考虑以下Python代码:

 30    url = "http://www.google.com/search?hl=en&safe=off&q=Monkey"
 31    url_object = urllib.request.urlopen(url);
 32    print(url_object.read());

运行此命令时,将抛出异常:

File "/usr/local/lib/python3.0/urllib/request.py", line 485, in http_error_default
   raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

但是,当将其放入浏览器时,搜索将按预期返回.这里发生了什么?我怎样才能克服这个问题,以便以编程方式搜索Google?

有什么想法吗?



1> 小智..:

这应该可以解决问题

user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'

url = "http://www.google.com/search?hl=en&safe=off&q=Monkey"
headers={'User-Agent':user_agent,} 

request=urllib2.Request(url,None,headers) //The assembled request
response = urllib2.urlopen(request)
data = response.read() // The data u need



2> Kevin Lacque..:

如果您想通过编程界面"正确"进行Google搜索,请查看Google API.这些不仅是搜索Google的官方方式,如果Google更改其结果页面布局,它们也不太可能改变.


什么样的白痴会投票这篇文章"冒犯"?
(...)因为您的应用(a)未发送用户代理字符串或(b)发送了Google认可为机器人的默认字符串(请参阅http://google.com/robots.txt)
这些API不是通过Web界面,而是直接访问搜索XML.它们连接到Google的不同页面,为您提供不同格式的数据.基本上,你得到403,因为你不能像你那样访问数据,谷歌知道它(...)
他们的api问题是他们没有返回与google.com相同的结果.请参阅http://code.google.com/p/google-ajax-apis/issues/detail?id=43
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有