我已经创建了基本的scrapy项目,并启用了documentation中的cookiemiddleware。
settings.py
COOKIES_ENABLED = True
COOKIES_DEBUG = True
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700
}
蜘蛛/ amazon_spider.py
class AmazonSpider(Spider):
name = "amazon_spider"
start_urls = ['https://sellercentral.amazon.com/gp/sc-redirect']
def parse(self, response):
self.logger.info(response.headers.getlist('Set-Cookie'))
但是,对于
的请求COOKIES_ENABLED = True
响应与
请求的响应相同COOKIES_ENABLED = False
具有
请启用Cookie继续
在它的身体里。
请求
GET / gp / sc-redirect HTTP / 1.1
主持人:sellercentral.amazon.com
User-Agent:Mozilla / 5.0(X11; Linux x86_64; rv:50.0)Gecko / 20100101 火狐/ 50.0
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
接受语言:en-US,en; q = 0.5
Accept-Encoding:gzip,deflate,br
DNT:1
连接:保持活力
升级 - 不安全请求:1
的 RESPONSE
HTTP / 1.1 302找到了 服务器:服务器
日期:星期一,2017年1月30日16:12:51 GMT
内容类型:text / html; charset = UTF-8
转移编码:分块
连接:保持活力
地点:https:// sellercentral.amazon.com/ap/signin?...
变化:接受编码,用户代理
缓存控制:无缓存,无存储,必须重新验证 到期:0
Pragma:no-cache
内容编码:gzip
Set-Cookie:session-id-time = 1486368000l;路径= /;域= .amazon.com;到期=周一,06-Feb-2017 16:12:51 GMT session-id = 160-1127516-9252943;路径= /;域= .amazon.com;到期=周一,06-Feb-2017 16:12:51 GMT
RESPONSE
DEBUG:Crawled(200)https://sellercentral.amazon.com/robots.txt> (引用者:无)
DEBUG:重定向(302)到https://sellercentral.amazon.com/ap/signin?...>来自https://sellercentral.amazon.com/gp/sc-redirect/>
DEBUG:收到的Cookie来自:< 302 https:// sellercentral.amazon.com/ap/signin?...> Set-Cookie:signin-sso-state-us = 44538bf3-88d0-410b-9aa0-bc8da4b2d090;域= .amazon.com; Expires = Sun,25-Jan-2037 16:09:14 GMT;路径= / AP /;安全;仅Http
Set-Cookie:ap-fid ="&#34 ;;域= .amazon.com; Expires = Thu,01-Jan-1970 00:00:10 GMT;路径= / AP /;安全
以下是完整的log和完整的response body。
为什么Set-Cookie结果不同以及如何使用Scrapy处理这种特殊情况的cookie?
答案 0 :(得分:2)
添加
后USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'
到settings.py
它工作正常,并没有抱怨禁用的cookie。
新回复是
DEBUG:Crawled(200)https://sellercentral.amazon.com/robots.txt> (引用者:无)
收到的Cookie来自:< 302 https://sellercentral.amazon.com/gp/sc-redirect/>
Set-Cookie:session-id-time = 1486368000l;路径= /;域= .amazon.com;到期=周一,06-Feb-2017 23:14:58 GMT
Set-Cookie:session-id = 167-3010519-3678460;路径= /;域= .amazon.com;到期=周一,06-Feb-2017 23:14:58 GMT
DEBUG:重定向(302)到https://sellercentral.amazon.com/ap/signin?...。>来自https://sellercentral.amazon.com/gp/sc-redirect/>