帮助中心

汇集使用技巧,一分钟上手动态IP,赢在大数据时代,从这里开始。

当前位置:帮助中心>最新资讯

爬虫代理遇到请求超时怎么办?

  很多爬虫工作在使用爬虫代理的时候会遇到请求超时的问题,代码就卡在哪里,不报错也没有requests请求的响应。遇到这种情况该怎么办呢?

  爬虫代理遇到请求超时怎么办?

爬虫代理遇到请求超时怎么办?

  为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着timeout参数。在默认情况下,除非显式指定了timeout值,requests是不会自动进行超时处理的。如果没有timeout,你的代码可能会挂起若干分钟甚至更长时间。

  连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是connect()),Request会等待的秒数。一个很好的实践方法是把连接超时设为比3的倍数略大的一个数值,因为TCP数据包重传窗口(TCP packet retransmission window)的默认大小是3。

  爬虫代理遇到链接超时,通常的处理是在requests.get()语句中加入timeout限制请求时间

  req=requests.get(url,headers=headers,proxies=proxies,timeout=5)

  如果发现设置timeout=5后长时间不响应问题依然存在,可以将timeout里的参数细化

  作出如下修改后,问题就消失了

  req=requests.get(url,headers=headers,proxies=proxies,timeout=(3,7))

  ---------------------

  timeout=(3,7)=(connect timeout,read timeout)

  timeout是用作设置响应时间的,响应时间分为连接时间和读取时间,timeout(3,7)表示的连接时间是3,响应时间是7。

  一般使用以上的方法都能解决请求超时的问题。



在线咨询
微信号

微信号

回到顶部