首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scrapy和cookie处理

Scrapy和cookie处理
EN

Stack Overflow用户
提问于 2013-06-06 00:33:20
回答 2查看 3.8K关注 0票数 2

我正在学习如何使用scrapy。尤其是处理cookie时会抓狂。问题是,我找不到一大堆的例子、教程或文档来帮助我完成这项工作。如果有人能提供任何材料,我将不胜感激。为了向你展示我有多迷茫,下面的代码应该显示我缺乏理解;

代码语言:javascript
运行
复制
from scrapy.spider import BaseSpider
from scrapy.http.cookies import CookieJar

class sasSpider(BaseSpider):
name = "sas"
allowed_domains = ["sas.no"]
start_urls = []

def parse(self, response):
    Request("http://www.sas.no", meta={'cookiejar': response.meta['cookiejar']}, callback = self.nextfunction)

def nextfunction(self, response):
    cookieJar = response.meta.setdefault('cookiejar', CookieJar())
    cookieJar.extract_cookies(response, response.request)

    for cookie in CookieJar:
        open('cookies.html', 'wb').write(cookie)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-06 21:02:03

如果您想手动添加cookie,只需传入它们:

代码语言:javascript
运行
复制
yield Request("http://www.sas.no", cookies={
    'foo': 'bar'
}, callback=self.nextfunction)

它们将保留在以后的所有请求中。只要记住在start_requests回调中这样做就可以了,如果你想让它们出现在所有的请求中。

票数 1
EN

Stack Overflow用户

发布于 2015-12-04 14:44:06

如果您只想附加一个预定义的make_requests_from_url,那么覆盖cookie可能是一个更好的主意:

代码语言:javascript
运行
复制
class MySpider(scrapy.Spider):

  def make_requests_from_url(self, url):
    return scrapy.Request(url=url, 
                          cookies={'currency': 'USD', 'country': 'UY'})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16945256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档