我正在寻求从网站上抓取特定的产品信息。但是,我所希望的XPATH标准之一并未出现在每个产品的页面上。 (虽然所有产品都有名称,价格等,但有些产品没有显示推荐的年龄)。
这不是问题,但是,当scrapy写入或甚至返回shell中的数据时,它不再是与start-url列表相关联的顺序,也不是因为某些数据缺少数据。网址。因此,我的所有数据(不同变量的多列)都与新的年龄列不匹配,因为它更短且无序。当我只关注那些显示年龄的产品时,情况并非如此。
有没有办法让页面没有所需的XPATH和年龄返回一个空格来保持我的数据中匹配的列顺序?
这是我的XPATH选择器:
item["age"] = hxs.select('//li[contains(@class,"our-age")]/span/text()').extract()
(有些网页没有年龄,因此缺乏完整的路径。)
答案 0 :(得分:1)
xpath = '//li[contains(@class,"our-age")]/span/text()'
item["age"] = hxs.select(xpath).extract() or [' ']