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

Selenium爬取Audible最后页码异常:元素存在却返回空字符串

解决Selenium爬取Audible最后页码返回空字符串的问题

问题原因及对应解决方案:

  • 元素渲染时机偏差:presence_of_all_elements_located仅保证元素存在于DOM中,但文本内容可能还未完成渲染。改用visibility_of_all_elements_located等待元素可见,确保文本已加载完毕。
  • XPATH匹配精度问题:原XPATH中contains(@class,"pagingElements ")的末尾空格可能导致匹配失效,换成contains(concat(" ", @class, " "), " pagingElements ")的方式,能更严谨匹配目标class,避免空格干扰。
  • 文本获取方式不当:get_attribute('textContent')可能获取到未渲染或隐藏的内容,使用Selenium内置的.text方法更适合提取可见元素的文本。

修正后的代码:

url = 'https://www.audible.com/search'
driver = webdriver.Chrome(service=service, options=options)
driver.get(url)
# 等待分页元素可见,使用更准确的XPATH匹配class
all_pages = WebDriverWait(driver, 50).until(EC.visibility_of_all_elements_located(
    (By.XPATH, '//ul[contains(concat(" ", @class, " "), " pagingElements ")]/li')
))

last_page = all_pages[-2]
# 使用.text获取可见文本
last_page_num = int(last_page.text)

额外提示:

  • 若页面分页组件是动态加载的,可能需要先滚动页面到分页区域,触发元素加载。
  • 确认页面是否存在多个分页栏,确保XPATH唯一匹配目标分页组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:08:27