Skip to main content
 首页 » 编程设计

python之Scrapy:如何在不存在时创建条件(存在或不存在)XPATH 返回值

2025年05月04日7虾米哥

我想从网站上抓取特定的产品信息。然而,我想要的 XPATH 标准之一并没有出现在每个产品的页面上。 (虽然所有产品都有名称、价格等,但有些产品没有显示推荐年龄)。

这不是问题,但是,当 scrapy 在 shell 中写入甚至返回数据时,它不再按照与 start-url 列表相关联的顺序排列,也不会考虑某些缺少数据的情况网址。因此,我的所有数据(不同变量的多列)都不匹配新的年龄列,因为它更短且乱序。当我只关注显示年龄的产品时,情况并非如此。

有没有办法让没有所需 XPATH 和 age 的页面返回一个空格,以在我的数据中保持匹配的列顺序?

这是我的 XPATH 选择器:

item["age"] = hxs.select('//li[contains(@class,"our-age")]/span/text()').extract() 

(有些网页没有年龄,因此完全没有路径。)

请您参考如下方法:

xpath = '//li[contains(@class,"our-age")]/span/text()' 
item["age"] = hxs.select(xpath).extract() or [' ']