python3 raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403...

1.分析:

如果用 urllib.request.urlopen 方式打开一个URL,服务器端只会收到一个单纯的对于该页面访问的请求,但是服务器并不知道发送这个请求使用的 浏览器,操作系统,硬件平台等信息,而缺失这些信息的请求往往都是非正常的访问,例如爬虫.
有些网站验证请求信息中的UserAgent(它的信息包括硬件平台、系统软件、应用软件和用户个人偏好),如果UserAgent存在异常或者是不存在,那么这次请求将会被拒绝(如上错误信息所示)
所以可以尝试在请求中加入UserAgent的信息
方案:
对于 Python 3.x来说,在请求中添加UserAgent的信息非常简单,代码如下:
可以在请求加上头信息,伪装成浏览器访问User-Agent,具体的信息可以通过火狐的FireBug插件查询  
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}  
req = request.Request(url=chaper_url, headers=headers)  
page  = request.urlopen(req).read() 
 
参考:https://www.cnblogs.com/lixiaolun/p/4773433.html 

转载于:https://www.cnblogs.com/hixiaowei/p/9721513.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: raise httperror(req.full_url, code, msg, hdrs, fp) 的意思是抛出一个 HTTP 错误,其中包含请求的完整 URL、错误代码、错误信息、头部信息和文件指针等。 ### 回答2: 抛出 HTTPError 表示在处理请求时发生了错误。这个错误可以由多种情况引起,例如请求的 URL 无效,服务器返回了错误的状态码或其他错误。在这种情况下,通常会引发一个 HTTPError 异常来通知开发人员发生了错误。 这个异常的参数包括 req.full_url(请求的完整 URL)、code(服务器返回的错误状态码)、msg(错误信息)、hdrs(服务器返回的响应头信息)和 fp(响应的文件对象)。通过这些参数,开发人员可以了解到发生了什么错误以及服务器的响应细节。 以下是一个示例代码: ```python import urllib.request from urllib.error import HTTPError url = "http://example.com" try: response = urllib.request.urlopen(url) except HTTPError as e: print("发生了 HTTPError 错误:") print("URL:", e.filename) print("代码:", e.code) print("信息:", e.msg) print("响应头:", e.hdrs) print("文件对象:", e.fp) ``` 上述代码通过使用 Pythonurllib 库发送请求,并捕获了可能发生的 HTTPError 异常。如果在请求过程中发生了错误,就会进入异常处理块,打印出错误相关的信息。开发人员可以通过这些信息来调试和处理错误,以便更好地处理请求和响应的过程。 ### 回答3: raise httperror(req.full_url, code, msg, hdrs, fp) 是一个Python异常,它用于处理HTTP请求过程中发生的错误。当发生HTTP错误时,这个异常会被抛出,其会包含一些必要的信息,比如请求的URL(req.full_url)、返回的错误代码(code)、错误信息(msg)、响应头(hdrs)和响应内容(fp)。该异常的抛出可以让开发者捕获并进行相应的处理,以便处理HTTP请求中的异常情况。 在处理这个异常时,通常可以根据具体情况进行不同的处理方式。比如,可以根据返回的错误代码来判断具体的错误类型,然后根据不同的错误类型采取不同的处理措施。可以选择重试请求、返回特定的错误信息给用户、记录错误日志等等。 这个异常的抛出可以帮助开发者更好地处理HTTP请求过程中出现的错误,从而提高代码的健壮性和安全性。但需要注意的是,如果频繁抛出这个异常,可能会影响程序的效率,因此在使用时应该合理判断和控制异常的发生频率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值