我在Scrapy上找到的所有示例都在谈论如何抓取单个页面,具有相同url模式的页面或网站的所有页面。我需要抓取一系列页面A,B,C,其中在A中你具有到B的链接,依此类推。例如,网站结构为:
A ----> B ---------> C D E
我需要爬网所有C页面,但是要获取到C的链接,我需要在A和B之前进行爬网。有什么提示吗?
参见scrapy Request结构,要抓取此类链,你将必须使用如下所示的callback参数:
class MySpider(BaseSpider): ... # spider starts here def parse(self, response): ... # A, D, E are done in parallel, A -> B -> C are done serially yield Request(url=<A url>, ... callback=parseA) yield Request(url=<D url>, ... callback=parseD) yield Request(url=<E url>, ... callback=parseE) def parseA(self, response): ... yield Request(url=<B url>, ... callback=parseB) def parseB(self, response): ... yield Request(url=<C url>, ... callback=parseC) def parseC(self, response): ... def parseD(self, response): ... def parseE(self, response): ...