抓取我不想但不知道如何排除的链接

Scraping links that I don't want to but I don't know how to exclude

假设我有这个结构

<div data-next="link0">
   <a href="link1"/>
   <a href="link2"/>
   <a href="link3"/>
   <a href="link4"/>
</div>

并且对于我的规则对象,我只想访问 link0,而不访问 link1、link2、link3、link 4.

我该怎么做?

我试过了

Rule(LinkExtractor(restrict_xpaths=('//div[@data-next]/@data-next')), callback='parse_item'),

但它不起作用,因为我需要对元素的引用,而不是直接对 link 的引用。但是,如果我删除@data-next,link1、link2、link3、link4 也会被删除。

那么,有什么方法可以在这种情况下使用 Rule 对象仅抓取 link0?

以下xpath

//div[@data-next="link0]
Rule(LinkExtractor(restrict_xpaths='//div[@data-next]', tags='div', attrs='data-next'), callback='parse_item'),

LinkExtractor 默认查找 <a> 标签和 @href 属性。在这种情况下,您已指定搜索中应包括哪些标签和属性。来自 Scrapy docs 的更多信息:

Parameters:

(...)

  • tags (str or list) – a tag or a list of tags to consider when extracting links. Defaults to ('a', 'area').

  • attrs (list) – an attribute or list of attributes which should be considered when looking for links to extract (only for those tags specified in the tags parameter). Defaults to ('href',)