You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Requests.get请求耗时突增问题求助(附Python相关代码)

Python Requests.get 请求耗时过长的排查与优化方案

核心问题定位

你的代码里有几个直接导致请求耗时飙升的问题:

  • 重复请求同一个URL:if判断时发起一次requests.get(),满足条件后又发起一次,同一个URL被请求两次,直接翻倍了请求耗时。
  • 未复用HTTP连接:每次请求都新建TCP连接,重复消耗连接建立的开销,这在批量请求里会累积成巨大的时间浪费。
  • 单元格访问效率低下:用sheet["C"+str(i)]这种字符串拼接方式定位单元格,openpyxl对这种方式的解析效率远低于直接用cell(row, column)的方式,还额外增加了字符串拼接的开销。
  • 无超时控制:如果某个请求遇到服务器无响应的情况,会一直阻塞等待,拖慢整个循环的进度。
  • 串行请求效率瓶颈:1万+次请求串行执行,总耗时是单次请求耗时的累加,完全没利用并发提升效率。

基础优化代码(解决核心耗时问题)

先把最影响效率的重复请求、连接复用、单元格访问这几个问题解决,代码如下:

from openpyxl import load_workbook
import requests

# 只读模式加载Excel,提升大文件读取速度
wb = load_workbook(r"C:\TranslateMfestSite\ProductsInformation.xlsx", read_only=True)
sheet = wb['Sheet']
Designer = 551

# 用Session复用HTTP连接,减少TCP连接建立开销
session = requests.Session()
# 设置超时,避免请求卡住(连接超时5秒,读取超时15秒,可根据实际调整)
timeout = (5, 15)

for i in range(1, 14498):
    # 直接通过行列号定位单元格,避免字符串拼接
    c_cell = sheet.cell(row=i, column=3)
    b_cell = sheet.cell(row=i, column=2)
    
    # 跳过空值,避免后续类型转换报错
    if c_cell.value is None or b_cell.value is None:
        continue
    
    try:
        if int(c_cell.value) == Designer:
            url = str(b_cell.value)
            # 只请求一次URL,复用响应结果
            response = session.get(url, timeout=timeout)
            response.raise_for_status()  # 主动捕获HTTP错误(比如404、500)
            html_content = response.text
            if 'xlink:href="' in html_content:
                r = html_content
                # 这里添加你需要的后续处理逻辑
    except (ValueError, requests.exceptions.RequestException) as e:
        # 捕获异常,避免单个请求失败导致整个循环中断
        print(f"第{i}行处理失败: {str(e)}")

进一步优化方向

如果基础优化后速度还是不够,可以尝试以下方案:

  • 并发请求:用多线程(比如concurrent.futures.ThreadPoolExecutor)或异步请求(比如aiohttp)批量处理请求,把串行的耗时变成并行的,大幅压缩总耗时。注意线程数不要设置太高,避免触发目标服务器的限流机制。
  • 排查网络与服务器状态:
    • 用curl或浏览器测试单个目标URL的响应时间,对比之前的正常情况,确认是网络变慢还是服务器响应变慢。
    • 检查是否被目标网站限流(比如IP被限制访问频率),可以尝试降低请求频率或更换IP测试。
  • 预筛选URL:先遍历Excel把所有符合条件的URL收集起来,再统一处理,避免在循环里同时做Excel读取和网络请求的混合操作。

内容的提问来源于stack exchange,提问作者Pythoner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:35:01