ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

scrapy多级请求中priority设置

2022-08-16 15:30:58  阅读:167  来源: 互联网

标签:priority1 爬取 self 多级 priority scrapy priority2 func


基于优先获取item的想法,最下级请求最优先

请求优先级是基于scrapy有很多请求要发起的情况

priority越大请求越优先

不在设置中修改配置

scrapy代码太复杂,这是目前可以接受的解决办法

class xxxspiderSpider(scrapy.Spider):
    # 三级请求优先级逐级递减
    priority1 = 100000000
    priority2 = priority1 * 10000
    priority3 = priority2 * 10000

    def start_requests(self):
        yield scrapy.http.Request(第一级url,callback=self.第一级爬取,priority=self.priority1_func())

    def 第一级爬取(self, response):
        for i in 第二级url列表:
            yield scrapy.http.Request(url=第二级url,callback=self.第二级爬取,priority=self.priority2_func())

        yield scrapy.http.Request(第一级下一页url,callback=self.第一级爬取,priority=self.priority1_func())


    def 第二级爬取(self, response):
        for i in 第三级url列表:
            yield scrapy.http.Request(第三级url,callback=self.第三级爬取,priority=self.priority3_func())

        yield scrapy.http.Request(第二级下一页url,callback=self.第二级爬取,priority=self.priority2_func())

    def 第三级爬取(self, response):
        yield item

    def priority1_func(self):
        self.priority1 = self.priority1 -1
        return self.priority1

    def priority2_func(self):
        self.priority2 = self.priority2 -1
        return self.priority2

    def priority3_func(self):
        self.priority3 = self.priority3 -1
        return self.priority3

标签:priority1,爬取,self,多级,priority,scrapy,priority2,func
来源: https://www.cnblogs.com/meizhengchao/p/16591718.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有