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):
...