Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 第二级回调中的刮擦跟随分页_Python_Scrapy_Scrapy Spider - Fatal编程技术网

Python 第二级回调中的刮擦跟随分页

Python 第二级回调中的刮擦跟随分页,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我有这段代码,我需要遵循我的函数parse_中的所有分页链接以及附加信息 start_urls = ['http://example.com'] def parse_start_url(self, response): sel = Selector(response) aa = sel.xpath('//h3/a...../@href').extract() for a in aa: yield Request(url = a, callback=sel

我有这段代码,我需要遵循我的函数parse_中的所有分页链接以及附加信息

start_urls = ['http://example.com']

def parse_start_url(self, response):
    sel = Selector(response)
    aa = sel.xpath('//h3/a...../@href').extract()
    for a in aa:
        yield Request(url = a, callback=self.parse_additional_info)

def parse_additional_info(self, response):
    sel = Selector(response)
    nextPageLinks=sel.xpath("//a[text([contains(.,'Next')]]/@href").extract()

请注意:我已经尝试了“刮擦”规则,但由于它是一系列回调,所以没有起作用。

我自己找到了答案。我必须使用响应对象的urljoin方法和nextPageLinks url,并回调相同的函数,直到没有剩余页面。 下面是代码,它可能会帮助一些人与相同的场景

def parse_additional_info(self, response):
 .
 .

if nextPageLinks: 
   url = response.urljoin(nextPageLinks[0]) 
   yield Request(url = url, callback=self.parse_additional_info) 

根据你目前的密码,你下一步会得到什么?我自己找到了答案。我不得不将response.urljoin与下一个页面链接一起使用,并回调相同的函数,直到没有剩下页面为止。下面是代码,它可能会对具有相同场景的用户有所帮助。”def解析附加信息(自身、响应):。。。。。。如果nextPageLinks:url=response.urljoin(nextPageLinks[0])生成请求(url=url,callback=self.parse_additional_info)“,请自己回答这个问题。在答案部分找到答案肯定更好。是的,谢谢@RoshanJossey。刚刚添加了答案。是否不可能使用链中间的方法来跟踪链接?