zoukankan      html  css  js  c++  java
  • [Python] urllib2.HTTPError: HTTP Error 403: Forbidden

    搬运自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()
  • 相关阅读:
    Spring Boot邮件功能
    jenkins自动部署
    spring boot定时任务解析
    类的加载classload和类对象的生成
    排序算法
    Robbin负载均衡
    ActiveMQ消息中间件
    hystrix熔断器
    css3整理--calc()
    css3整理--media
  • 原文地址:https://www.cnblogs.com/southernduck/p/4337074.html
Copyright © 2011-2022 走看看