如何使用scrapy爬行多个页面?
我在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):
...
以上是 如何使用scrapy爬行多个页面? 的全部内容, 来源链接: utcz.com/qa/421189.html