首页 > 解决方案 > 使用 Scrapy-Python 抓取网站所有页面后如何执行任务

问题描述

在我的刮刀 刮掉网站主页的所有锚点后,我想执行一些任务。但是 print 语句是在处理所有页面的 parse_details 之前执行的。

任何帮助,将不胜感激。提前致谢

    
    def parse_site(self,response):
        next_links = response.css('a::attr(href)').getall()
       
        for next_link in next_links:
              yield response.follow(next_link,callback=self.parse_detail)
        print("Task after complettion of all pages")
       
     def parse_detail(self,response):
        
        print("@@@@@@@@@@@@@@@@@GETTING HERE################")
        all_content = response.xpath('//body').extract()
        print("###############")
        print(response.url)

标签: pythonscrapyweb-crawler

解决方案


您可以将该方法添加close到您的蜘蛛,该方法将在您的蜘蛛完成后由scrapy 调用。但是,您不能在该方法中产生更多项目。Scrapy 文档

def closed(self, reason):
    # do something here.
    pass

推荐阅读