尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
华为AI开发者空间
在网络请求当中, 请求超时这种情况是不可避免的, 如果不设置好相关的参数, 那么你的程序很有可能会出现一直无法响应的状态。关于超时这一情况, 还可以将其分为连接超时和读取超时这两种类型, 从比较简单的角度出发去理解的话, 所谓连接超时, 指的就是在客户端发出请求直至与服务器方建立起连接这个过程中所允许耗费的最长时间上限, 而所谓读取超时, 则是指在与服务器的连接已经成功建立之后, 到最终收到来自服务器方的响应数据这其间所需要等待的最长时间界限。在最近的时间里, 异常状况已经出现了两次。有一次出现的情况是, 返回的数据并不完整, 通过打印文本内容可以看出, 字符串的后半段没有被读取出来。还有那么一回, 事情卡住不动了, 一直没出现返回的反应。通过百度搜索找到的信息如下: 遇到了超时的情况, 以及页面卡住没有任何反应的解决处理方法。来源是简书这一平台。网络请求不可避免会遇上请求超时的情况在 中如果不设置你的程序可能会永远失去响应。超时这个事儿, 它其实是可以分成那么两类的, 就是连接超时, 再一个, 就是读取超时。连接超时连接超时这个概念, 是指当你的客户端尝试去跟远端的机器端口建立连接的时候, 它所能够等待的时间长度是多少秒。import timeimport requestsurl http://www.google.com.hkprint(time.strftime(%Y-%m-%d %H:%M:%S))try:html requests.get(url, timeout5).textprint(success)except requests.exceptions.RequestException as e:print(e)print(time.strftime(%Y-%m-%d %H:%M:%S))因为被墙了, 所以无法连接, 错误信息显示是连接超时。2018-12-14 14:38:20HTTPConnectionPool(hostwww.google.com.hk, port80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(, Connection to www.google.com.hk timed out. (connect timeout5)))2018-12-14 14:38:25就算不进行专门的设置, 依然会使用一个默认的链接超时时间, 经过我的测试, 具体的时长大概在21秒左右。读取超时所谓的读取超时, 实际上就是指客户端在等待服务器发出请求时所耗费的时长。更具体地来说, 它指的是客户端为了等待服务器依次发送各个字节而需要经历的时间。而在绝大多数情况下, 也就是占据百分之九十九点九的情形里, 这一概念特指的就是从开始直到服务器发出第一个字节之前的这段等待时间。简单来说, 连接超时指的是从发起请求到连接建立之间所允许消耗的最大时间长度, 而读取超时则是指连接一旦成功之后在等待服务器返回响应这一过程里所占据的最大时长。假如说, 你把单个的具体数值进行设定充当那个占位符的样子话, 就像是下面所展现出来的这个情况那样子的。r .get(, 5)这个值会被用来作为读操作里面的那个参数。如果你想要分别地进行设置, 你就需要输入一个包含两个元素的序列数据。变量r通过调用_get函数并传入特定参数来赋值, 其中该参数的值为27乘以3.05之后的结果。黑板课爬虫闯关活动当中的第四关, 这个关卡的情况是, 网站方人为地设置了一个响应等待时间, 该时间的长度为十五秒钟, 使用这一情况来进行说明, 被认为是非常合适的。import timeimport requestsurl_login next/lesson/crawler_ex03/session requests.Session()session.get(url_login)token session.cookies[csrftoken]session.post(url_login, data{csrfmiddlewaretoken: token, username: xx, password: xx})print(time.strftime(%Y-%m-%d %H:%M:%S))url_pw try:html session.get(url_pw, timeout(5, 10)).textprint(success)except requests.exceptions.RequestException as e:print(e)print(time.strftime(%Y-%m-%d %H:%M:%S))在错误信息里面所展示出来的内容, 主要是表明了出现了读取操作超时的情况, 也就是通常所说的那个阅读时间超出预期的问题。2018-12-14 15:20:47port80): Read timed out. (read timeout10)2018-12-14 15:20:57读取这个超时配置它本来就是没有给默认的值的, 要是你不专门去给它设置一个数出来, 那么这个程序它就一直在那儿干等着, 根本不会停。我们的爬虫经常会发生那种卡住不动了的情况, 而且还没有任何报错的信息跑出来, 产生这种问题的原因, 其实就在这个地方。超时重试在处理超时情况的时候, 我们一般会先不立马给出结果而是会去配置一套能够重连三次的机制。def gethtml(url):i 0while i 3:try:html requests.get(url, timeout5).textreturn htmlexcept requests.exceptions.RequestException:i 1实际上, 它已经替我们把这些工作都封装好了。不过, 代码的数量好像也因此变多了。import timeimport requestsfrom requests.adapters import HTTPAdapters requests.Session()s.mount(http://, HTTPAdapter(max_retries3))s.mount(https://, HTTPAdapter(max_retries3))print(time.strftime(%Y-%m-%d %H:%M:%S))try:r s.get(http://www.google.com.hk, timeout5)return r.textexcept requests.exceptions.RequestException as e:print(e)print(time.strftime(%Y-%m-%d %H:%M:%S))把这个最大重试次数设置为3次, 然后再加上最开始的那一次请求, 算下来总共有4次。所以呢, 刚才说的那个代码跑完需要的耗时是20秒, 而并不是15秒。2018-12-14 15:34:03HTTPConnectionPool(hostwww.google.com.hk, port80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(, Connection to www.google.com.hk timed out. (connect timeout5)))2018-12-14 15:34:23
RELATED

相关推荐

platform_bus_init / device_register / bus_register / device / of_platform_register_reconfig_notifier

platform_bus_init / device_register / bus_register / device / of_platform_register_reconfig_notifier

platform_bus_init1. platform_bus_init 函数1.1 device_register 函数1.2 bus_register 函数1.3 of_platform_register_reconfig_notifier 函数1.4 device 结构体1. platform_bus_init 函数 通过early_platform_cleanup()函数,清理早期平台设备(将早期启…

📅 2026/10/1 10:22:57
Astra 被搁置:Agent 侧怎么卡 scope、授权与行动披露

Astra 被搁置:Agent 侧怎么卡 scope、授权与行动披露

本文面向正在搭建或运维 agent harness / tool-using coding agent 的软件与平台工程师。素材来自 2026-09-28 多家媒体对 OpenAI 搁置 GPT-6.1 Astra 发布计划的公开报道。文中严格区分「公开事实」与「作者架构建议」;不编造内部 eval 分数、官方安全计分卡或未公…

📅 2026/10/1 10:22:57
2026 年版|别再混淆 AI Agent 与 Agentic AI!概念、架构、落地场景全解析

2026 年版|别再混淆 AI Agent 与 Agentic AI!概念、架构、落地场景全解析

本文详细解析了AI Agent和Agentic AI的概念、联系与区别。AI Agent是指能够感知环境、自主决策并采取行动的智能系统;而Agentic AI则更强调系统整体围绕复杂目标自主行动的能力,通常涉及多智能体协作、跨系统编排等。文章还讨论了两者在现实中的应用场景…

📅 2026/10/1 10:17:56
MORE NEWS

更多资讯

📰

CTF新手入门指南:赛制、五大方向与练习平台全解析

我是从Web方向入坑CTF的,后来为了补短板又把杂项、密码学、逆向都摸了一遍,现在回过头来看,新手阶段最痛苦的不是“不会做题”,而是“不知道该学什么、按什么顺序学”。网上的入门资料要么太散,要么直接甩一脸高难度赛…

📰

用Java从零搭建P2P视频通话系统:信令、RTP与NAT穿透实战

1. 视频通话的Java世界观:先搞懂我们要做什么 很多Java开发者一听到“视频通话”就头大,心里冒出的全是WebRTC、音视频编解码、回声消除这类听起来就复杂的专业术语,似乎这个东西天然就应该属于C开发者。实际上,纯用Java做一套可运…

📰

OpenClaw本地智能体部署实战:8分钟跑通Skill机制

说实话,我第一次看到“ OpenClaw(Clawdbot) ”这名字的时候,第一反应是又一个套壳的AI玩具。但真正花了一晚上把它跑起来,又把两个自定义 Skill 挂上去之后,我得承认,这玩意儿在“本地智能体…

📰

C++与SDL2复刻金庸群侠传:2D游戏引擎开发实践指南

简介:这是一份以SDL2为基础、用C实现的2D游戏引擎源码,目标是复刻DOS经典《金庸群侠传》,并提供一个实际可运行的移植范例,适合具备C基础、对游戏开发或老游戏移植感兴趣的开发者。压缩包内共186个文件,其中h/cpp/hpp源…

📰

SDL2+C++自制2D游戏引擎:复刻金庸群侠传实战指南

简介:这是一份以SDL2为基础实现的2D游戏引擎源码,以复刻经典DOS游戏《金庸群侠传》为实战目标。适用于已掌握C基础、希望深入游戏框架设计与SDL2应用的开发者,也适合对早期国产RPG实现方式感兴趣的爱好者。压缩包共186个文件,体积…

📰

遗传算法优化BP神经网络:解决预测模型过拟合与局部极小值问题

简介:这份资源面向需要做时间序列或函数拟合预测的MATLAB用户,尤其是想摆脱BP网络易陷入局部极小、收敛慢等困扰的初学者与工程实践者。它用遗传算法对BP神经网络的初始权值与阈值进行全局寻优,再交由BP完成精细训练,从而提升预测…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬