scrapy 如何带cookie访问

新手这里,想爬下https://xueqiu.com/stock/f10/finmainindex.json?symbol=SZ000001&page=1&size=1这个地址,返回400错误,我知道需要先访问下https://xueqiu.com/获取cookie,这个在scrapy里怎么弄,求指教谢谢!

阅读 6.8k
1 个回答

Scrapy官方文档中给出了这样一种方式,可以在请求时传入meta参数设置,根据不同会话记录对应的cookie:

for i, url in enumerate(urls):
    yield scrapy.Request(url, meta={'cookiejar': i}, callback=self.parse_page)

然后在后续的回调函数中,为了保证cookie的对应关系:

def parse_page(self, response):
    # do some precessing
    return scrapy.Request(url, meta={'cookiejar':response.meta['cookiejar']},callback=self.parse_other_page)

当然,你可以根据自己的需求来修改代码,关键点主要在于meta参数。

文档相关章节:DownloaderMiddleware--CookiesMiddleware

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进