Scrapy:如何在缺席时生成条件(当前或不存在)XPATH返回值?

时间:2013-06-22 14:14:19

标签: python xpath conditional selector scrapy

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

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

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

这是我的XPATH选择器:

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

(有些网页没有年龄,因此缺乏完整的路径。)

1 个答案:

答案 0 :(得分:1)

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