如何使用Scrapy-Python抓取网站的所有页面后执行任务

oyjwcjzk  于 2022-11-23  发布在  Python
关注(0)|答案(1)|浏览(118)

我想在我的scraper****刮除一个网站主页的所有锚点后执行某个任务,但是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)
8ulbf1ek

8ulbf1ek1#

您可以在spider中添加方法closed,在spider完成后,scrapy将调用该方法。但是,您不能在该方法中生成更多项。Scrapy docs

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

相关问题