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

Selenium爬取商品页面时无法获取产品URL问题咨询

问题原因与解决方案

核心问题1:方法返回值类型不匹配

  • 你调用的find_elements_by_xpath(复数形式elements)返回的是WebElement对象列表,不是单个元素,不能直接对列表调用get_attribute方法,会直接触发报错。
    如果要操作单个元素,要么改用find_element_by_xpath(单数形式element)取第一个匹配元素,要么遍历列表逐个操作每个元素。

核心问题2:匹配的元素本身没有href属性

  • 你XPath匹配的id前缀为testId-pod-displaySubTitle-的元素,通常是用来展示商品名称的文本标签(比如<span>、<p>标签),本身就不携带href属性,href属性一般绑定在包裹该文本标签的父级<a>标签上。

修复后的代码示例

方案1:遍历商品名元素向上查找父级链接

# 先拿到所有商品名称元素
product_name_elements = driver.find_elements_by_xpath("//*[starts-with(@id, 'testId-pod-displaySubTitle-')]")
for name_ele in product_name_elements:
    # 向上查找最近的a标签
    product_a = name_ele.find_element_by_xpath("./ancestor::a[1]")
    product_url = product_a.get_attribute('href')
    print(product_url)

方案2:直接修改XPath匹配链接标签

# 直接定位所有包含对应商品名子元素的a标签,批量提取href
product_urls = [a.get_attribute('href') for a in driver.find_elements_by_xpath("//a[.//*[starts-with(@id, 'testId-pod-displaySubTitle-')]]")]

内容的提问来源于stack exchange,提问作者Sebastián

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:06:03