我正在学习如何使用scrapy。尤其是处理cookie时会抓狂。问题是,我找不到一大堆的例子、教程或文档来帮助我完成这项工作。如果有人能提供任何材料,我将不胜感激。为了向你展示我有多迷茫,下面的代码应该显示我缺乏理解;
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)发布于 2013-06-06 21:02:03
如果您想手动添加cookie,只需传入它们:
yield Request("http://www.sas.no", cookies={
'foo': 'bar'
}, callback=self.nextfunction)它们将保留在以后的所有请求中。只要记住在start_requests回调中这样做就可以了,如果你想让它们出现在所有的请求中。
发布于 2015-12-04 14:44:06
如果您只想附加一个预定义的make_requests_from_url,那么覆盖cookie可能是一个更好的主意:
class MySpider(scrapy.Spider):
def make_requests_from_url(self, url):
return scrapy.Request(url=url,
cookies={'currency': 'USD', 'country': 'UY'})https://stackoverflow.com/questions/16945256
复制相似问题