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

Python使用Selenium爬取商品列表翻页时报TimeoutException如何解决

问题解决方案

1. 翻页抛出TimeoutException的解决

错误原因

  • 你使用固定下标a[{}]定位页码,当页码≥3时,分页栏会出现「上一页」按钮,原有页码对应的a标签下标会往后偏移,导致路径匹配不到对应元素
  • 注释中CSS选择器的类名拼写错误:正确类名为number_wrap,你写的number_warp多了个字母
  • 固定5秒的等待时长可能受网络波动影响,不足以完成页面加载

修复方案

将翻页的定位逻辑替换为文本匹配的方式,不受分页栏其他按钮的影响:

# 替换原来的翻页代码
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, '//div[contains(@class,"number_wrap")]/a[text()="{}"]'.format(cur_page)))).click()

2. 获取图片抛出IndexError的解决

错误原因

  • 不是所有商品列表li标签都存在a.thumb_link > img结构,部分广告块、异常商品的结构和正常商品不一致,select()方法匹配不到元素就会返回空列表,直接取[0]就会触发索引越界
  • 该站点使用图片懒加载,初始加载时img标签的src属性可能是占位图,真实地址存在data-src属性中

修复方案

先判断匹配结果是否非空,再取值,同时兼容懒加载属性:

# 替换原来注释的图片获取代码
img_tags = v.select('a.thumb_link > img')
if img_tags:
    img_url = img_tags[0].get('data-src', img_tags[0].get('src', '')).strip()
    print(img_url)

内容的提问来源于stack exchange,提问作者박성은

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:06:08