scrapy-redis実装start_requests機能

748 ワード

最近scrapy-redisのRedisSpiderを使用する場合、開始要求にクッキーを追加する必要があります.RedisSpiderはstart_を直接使用できないことがわかりました.requests、手動で実装する必要があります.解析により、RedisSpiderはRedisMixinクラスとSpiderクラスに継承され、実行ロジックはRedisMixinのnext_であることがわかる.requests関数はredisのdataを受信しmake_request_from_data関数はdata生成url,make_を復号するrequest_from_DataはSpiderクラスのmakeを呼び出し続けます.requests_from_url関数はRequestを生成するのでSpiderのmake_を書き換えるrequests_from_url関数でいいです.コードは次のとおりです.
from scrapy.http import Request
from scrapy_redis.spiders import RedisSpider

class MySpider(RedisSpider):
    ...
	
    def make_requests_from_url(self, url):
        return Request(url, dont_filter=True,
                       cookies={}, meta={} #   ...
                       )

    def parse(self, response):
        ...