如何在scrapy中执行回调之前添加URL后缀

时间:2015-04-22 15:34:16

标签: scrapy

我有一个爬虫,可以很好地收集我感兴趣的网址。但是,在检索这些网址的内容(即满足规则3的网站)之前,我想更新它们,即添加一个后缀 - 说'/ fullspecs' - 在右侧。这意味着,事实上,我想检索并进一步处理 - 通过回调函数 - 只有更新的。我怎么能这样做?

rules = (
        Rule(LinkExtractor(allow=('something1'))),
        Rule(LinkExtractor(allow=('something2'))),
        Rule(LinkExtractor(allow=('something3'), deny=('something4', 'something5')), callback='parse_archive'),
)

1 个答案:

答案 0 :(得分:1)

如果您想要做一些更复杂的事情,可以将process_value参数设置为lambda x: x+'/fullspecs'或设置为函数。

你最终得到:

Rule(LinkExtractor(allow=('something3'), deny=('something4', 'something5')),
     callback='parse_archive', process_value=lambda x: x+'/fullspecs')

详情请见:http://doc.scrapy.org/en/latest/topics/link-extractors.html#basesgmllinkextractor