2

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

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

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

这是我的 XPATH 选择器:

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

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

4

1 回答 1

1
xpath = '//li[contains(@class,"our-age")]/span/text()'
item["age"] = hxs.select(xpath).extract() or [' ']
于 2013-06-22T14:26:40.070 回答