请教 scrapy 的 cookie 导入方式?

2018-06-02 14:20:40 +08:00
 tbag781623489

本人刚接触scrapy,主要看中了能暂停,继续,去查这几点,以前一直用requests或者requests-html,所以都是这样处理cookie的:

headers = {
    'Accept-Language':'zh-CN',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
    # dummy:
    "cookie":"__cfduid=d2ea661e4cddec1eebedc2c54d78e6156698409;__utma=50351329.433346.1527221979.1527221979.1527221979.1;__utmc=501329;__utmz=501329.15271979.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);__51cke__=;__51laig__=1;__tins__3878067=%7B%22sid%22%3A%201527221980323%2C%20%22vd%22%3A%201%2C%20%22expires%22%3A%201527223780323%7D;91username=regf3qc;CLIPSHARE=n9u906378onmf990kdlpq3;DUID=15fdcQq0vvU0U10%2FdVsdg5smxiBM18RO%2FQ5O3uuV%2F3pe;EMAILVERIFIED=no;language=cn_CN;level=1;remainclosed=1;user_level=1;USERNAME=1a9dkmjCzR6TueiJdjZzM6gIUE8AXAHzxIuxb4x6vEk;",

}
r = requests.get('http://example.com',headers=headers)

但是看scrapy文档的话是把cookieheader分开输入的,而且cookie还只能用 dict 输入。上面的cookie直接用EditThisCookie导出就可以了。cookie不是包含在了header里面了吗?在scrapy里这样写似乎也没用:

class PornSpider(scrapy.Spider):
    name = 'pron'

    def start_requests(self):
        urls = ['http://pron.com/page={}'.format(i) for i in range(1,3)]
        for url in urls:
            yield Request(url,callback=self.parse,headers=headers) #这样似乎是没有用的, 返回的应该是不带 cookie 的页面

scrapy看起来比自己写方便很多,那想请教下能不能用requests库取代scrapy自带的Request呢?或者有没有更优雅的cookie导入方法呢?

谢谢大家

2581 次点击
所在节点    Python
2 条回复
Leigg
2018-06-02 22:23:05 +08:00
def start_requests(self):
cookies = settings.weibo_cookies (字典)
#cookie 登录
return [FormRequest(self.start_urls[1], cookies=cookies, formdata={}:这个参数是请求的 body,callback=self.parse)]
Leigg
2018-06-02 22:24:34 +08:00
注意缩进。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459811

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX