• 技术文章 >后端开发 >Python教程

    request timeout是什么意思

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2020-07-13 16:34:14原创34365
    超时(timeout)

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

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

    在爬虫代理这一块我们经常会遇到请求超时的问题,代码就卡在哪里,不报错也没有requests请求的响应。

    相关推荐:《python视频教程

    通常的处理是在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连接的超时时间,第二位是read读取的超时时间

    如果在使用timeout过程中遇到ValueError错误提示(类似:ValueError: Timeout value connect was Timeout(connect=2.0, read=2.0, total=None), but it must be an int or float. ),这是python-requests version 2.4.3-4版本的一个bug需要我们更新一下requests

    pip install -U requests

    以上就是request timeout是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 爬虫 timeout
    上一篇:python字典一个键只能有一个值吗 下一篇:web前端开发python能做吗
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 爬虫的解析方式五:XPath• 强大的爬虫框架Scrapy是什么?• python爬虫多少线程合适• Python爬虫如何设置代理
    1/1

    PHP中文网