1

场景:包含多个项目的页面,每个项目由标题、描述、图像组成。当其中一项缺少标题时会发生什么?scrapy 是如何处理的?看来scrapy盲目选择所有标题 //div[id='content']/ul/li/div[id='title']/text(),

预期的输出是该行将缺少标题。但我担心,因为它在不考虑项目上下文的情况下盲目地选择页面上的所有标题。如果第 5 项缺少标题,会不会误用第 6 项的标题?

title1 | description | image
.
.
title4 | description | image
title6 | description | image  <--- it's supposed to be missing the title.
       | description | image 

scrapy有办法解决这个问题吗?

我想的一种解决方法是查看父项元素,然后查看该项的内部。如果缺少某些东西,请不要显示它。

4

1 回答 1

2

有多种方法可以处理这种情况

1)您可以实现一个可以跳过不需要的项目的管道

2)您可以在提取部分添加检查以仅产生/返回所需的项目

您需要了解 Scrapy 是一个高级爬虫框架,它还为数据提取提供内置支持,您可以使用任何您想要的库进行提取。

于 2013-04-01T07:03:49.910 回答