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

Python如何减少嵌套循环耗时 优化ESPN球员数据爬取效率

代码优化方案

你当前代码效率低下的核心原因是内层循环重复调用find_all方法,每遍历一个下标j就会重新解析DOM查找对应元素,查找操作会被执行几十到上百次,自然耗时很长。

优化后代码(修改逻辑最小的版本)

单次查找将所有匹配元素存入临时变量,直接遍历元素而非下标,完全避免重复查询DOM:

players_by_temp = []
for i in range(20):
    anchor_links = html_table[i].find_all(class_='AnchorLink')
    players = [link.text for link in anchor_links]
    players_by_temp.append(players)
    print(i)

进一步精简优化版

直接遍历html_table前20个元素,用嵌套列表推导式实现,运行效率更高:

players_by_temp = [
    [link.text for link in table.find_all(class_='AnchorLink')]
    for table in html_table[:20]
]

额外提速建议

  • 如果HTML本身是你动态请求获取的,可将单线程请求改为多线程/协程请求,大幅降低网络IO等待耗时
  • 若后续还要解析同一页面的其他数据,可将解析后的DOM对象缓存,避免重复解析HTML内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:06:02