接收接口传输过来的数据,用CrawlerRunner会先实例化spiders下的蜘蛛文件里的class类,这个时候调用动态cookie就可以使用重构start_requests 的方法
抓取详情页时,会有一些产品信息的接口需要通过参数去再次访问,同时需要cookie 就会需要meta继续传递获取的动态cookie,不然没有cookie访问时,会出现429状态码。
解决429的方法
import random
DOWNLOADER_MIDDLEWARES = {
‘xxxxx.middlewares.TooManyRequestsRetryMiddleware’: 543,
}
RETRY_HTTP_CODES = [429] 遇到429 就启动重试
DOWNLOAD_DELAY = random.random() + random.random() + random.random()
RANDOMIZE_DOWNLOAD_DELAY = True 随机暂停