• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python爬虫headers处理及网络超时问题解决方案

python 搞代码 4年前 (2022-01-08) 52次浏览 已收录 0个评论

这篇文章主要介绍了Python爬虫headers处理及网络超时问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、请求headers处理

  我们有时请求服务器时,无论get或post请求,会出现403错误,这是因为服务器拒绝了你的访问,这时我们可以通过模拟浏览器的头部信息进行访问,这样就可以解决反爬设置的问题。

 import requests # 创建需要爬取网页的地址 url = 'https://www.baidu.com/' # 创建头部信息 headers = {'User-Agent':'OW64; rv:59.0) Gecko/20100101 Firefox/59.0'} # 发送网络请求 response = requests.get(url, headers=headers) # 以字节流形式打印网页源码 print(response.content)

结果:

 b'<!--STATUS OK-->\n\n\n  \n  \n              

2、网络超时问题

  在访问一个网页时,如果该网页长时间未响应,系统就会判断该网页超时,而无法打开网页。下面通过代码来模拟一个网络超时的现象。

 import requests # 循环发送请求50次 for a in range(1, 50): # 捕获异常 try: # 设置超时为0.5秒 response = requests.get('https://www.baidu.com/', timeout=0.5) # 打印状态码 print(response.status_code) # 捕获异常 except Exception as e: # 打印异常信息 print('异常'+str(e))

结果:

 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 20<strong style="color:transparent">来源gaodai#ma#com搞@@代~&码*网</strong>0 200 200 200

以上代码中,模拟进行了50次循环请求,设置超时时间为0.5秒,在0.5秒内服务器未作出相应视为超时,程序会将超时信息打印在控制台中。

  说起网络异常信息,requests模块同样提供了三种常见的网络异常类,示例代码如下:

 import requests # 导入requests.exceptions模块中的三种异常类 from requests.exceptions import ReadTimeout,HTTPError,RequestException # 循环发送请求50次 for a in range(1, 50): # 捕获异常 try: # 设置超时为0.5秒 response = requests.get('https://www.baidu.com/', timeout=0.5) # 打印状态码 print(response.status_code) # 超时异常 except ReadTimeout: print('timeout') # HTTP异常 except HTTPError: print('httperror') # 请求异常 except RequestException: print('reqerror')

结果:

 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200

以上就是Python爬虫headers处理及网络超时问题解决方案的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python爬虫headers处理及网络超时问题解决方案

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址