如何在 scrapy 中执行回调之前添加 url 后缀
How to add a url suffix before performing a callback in scrapy
我有一个爬虫可以很好地收集我感兴趣的 url。但是,在检索这些 url 的内容(即满足第 3 条规则的 url)之前,我想更新它们,即在右侧添加一个后缀 - 比如“/fullspecs”。这意味着,事实上,我只想通过回调函数检索和进一步处理更新的那些。我该怎么做?
rules = (
Rule(LinkExtractor(allow=('something1'))),
Rule(LinkExtractor(allow=('something2'))),
Rule(LinkExtractor(allow=('something3'), deny=('something4', 'something5')), callback='parse_archive'),
)
如果您想做一些更复杂的事情,您可以将 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
我有一个爬虫可以很好地收集我感兴趣的 url。但是,在检索这些 url 的内容(即满足第 3 条规则的 url)之前,我想更新它们,即在右侧添加一个后缀 - 比如“/fullspecs”。这意味着,事实上,我只想通过回调函数检索和进一步处理更新的那些。我该怎么做?
rules = (
Rule(LinkExtractor(allow=('something1'))),
Rule(LinkExtractor(allow=('something2'))),
Rule(LinkExtractor(allow=('something3'), deny=('something4', 'something5')), callback='parse_archive'),
)
如果您想做一些更复杂的事情,您可以将 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