码迷,mamicode.com
首页 > 编程语言 > 详细

[Python] urllib2.HTTPError: HTTP Error 403: Forbidden

时间:2015-03-14 10:50:55      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

搬运自http://www.2cto.com/kf/201309/242273.html,感谢原作。

之所以出现上面的异常,是因为如果用 urllib.request.urlopen 方式打开一个URL,服务器端只会收到一个单纯的对于该页面访问的请求。
但是服务器并不知道发送这个请求使用的浏览器,操作系统,硬件平台等信息,而缺失这些信息的请求往往都是非正常的访问,例如爬虫。
有些网站为了防止这种非正常的访问,会验证请求信息中的UserAgent(它的信息包括硬件平台、系统软件、应用软件和用户个人偏好)。
如果UserAgent存在异常或者是不存在,那么这次请求将会被拒绝。

可行的解决方案是在请求中加入UserAgent的信息。
以下是一次成功的例子:

URL=TestURL‘  #用真实的URL替代TestURL
HEADERS={User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0}
req=urllib2.Request(url=URL,headers=HEADERS)
htmlcode=urllib2.urlopen(req).read()

[Python] urllib2.HTTPError: HTTP Error 403: Forbidden

标签:

原文地址:http://www.cnblogs.com/southernduck/p/4337074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!