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

Scrapy循环中XPath提取元素title/id属性返回None排查

错误原因

你的代码有两处核心问题:

  • 变量名引用错误:循环中遍历得到的单元素选择器赋值给了item变量,但你实际调用了未定义的direct_page对象执行xpath查询,本身就无法定位到正确的上下文节点。
  • XPath语法错误:.//title的作用是查找当前节点下所有名为<title>的子标签,而你需要提取的是当前标签自身的title属性,XPath中选取属性必须加@前缀,该写法完全匹配不到目标内容。
修正方法

你第一次XPath查询拿到的item本身就是携带id、title属性的目标标签(也就是你打印出的span元素),不需要向下查找子标签,直接提取当前节点的对应属性即可,修正后代码如下:

for item in response.xpath(
        '//div[@id="mosaic-provider-jobcards"]//a//*[boolean(@id)]'
    ):
    # 提取当前标签的title属性值
    title_value = item.xpath('./@title').get()
    # 提取当前标签的id属性值
    id_value = item.xpath('./@id').get()
    print("title属性值:", title_value)
    print("id属性值:", id_value)

语法说明:XPath中./@属性名表示选取当前上下文节点的指定属性,@是属性选择的固定标识,不能省略。如果部分节点不存在title属性,.get()方法会默认返回None,不会抛出报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:46:01