Scrapy 刮痕:项目不符

Scrapy 刮痕:项目不符,scrapy,Scrapy,场景:包含多个项目的页面,每个项目包括标题、描述、图像。当其中一个项目缺少标题时会发生什么情况?scrapy是怎么处理的?scrapy似乎盲目地选择了所有标题//div[id='content']/ul/li/div[id='title']/text() 预期的输出是该行缺少标题。但我担心,因为它盲目地选择页面上的所有标题,而不考虑项目上下文。如果第5项缺少标题,它会不会错误地使用第6项的标题 title1 | description | image . . title4 | descripti

场景:包含多个项目的页面,每个项目包括标题、描述、图像。当其中一个项目缺少标题时会发生什么情况?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 
标题1 |描述|图像
.
.
标题4 |描述|图像

title6 | description | image有多种方法可以处理这种情况

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

2) 您可以将签入提取部分添加为仅生成/返回所需的项目


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

您使用什么来选择xpath
HtmlXPathSelector
XPathItemLoader
或其他什么?您的Scrapy版本、选择器版本和操作系统是什么?所有这些都可以通过verbose version命令获得:
$scrapy version-v
HtmlXpathSElector
我使用的是最新的scrapy版本,Ubuntu 12。最新的意思是0.17 devel还是0.16 stable?什么版本的lxml?您是否安装了libxml2?此信息可从version命令获得。你应该在你的代码中粘贴一些,因为它不是一味地做东西的“刮擦”。。。是您的XPath要求提供数据。您将如何在Scrapy中实现这一点?我只是在使用basespider示例,我可以看到对包含多个数据项的页面使用XPath。数据提取的内置支持有哪些?我在哪里可以找到这些库?HtmlXpathSElector是一个内置支持,您可以使用lxml、beautifulsoup等任意选择