2016-06-11 27 views
0

我想使用同一會話訪問某些網址。閱讀有關cookie中的文檔後,我就在下面這樣的:scrapy使用同一會話訪問網站

def start_requests(self): 
    yield scrapy.Request(self.getUrl, meta={'cookiejar': 0}, callback=self.downloadPic) 

def downloadPic(self, response): 
    yield scrapy.Request(self.vcodeUrl, meta={'cookiejar': response.meta['cookiejar']}, callback=self.getAndHandlePic 

def getAndHandlePic(self, response): 
    # handle picture, not the point here 
    pic = self.handlePic(response.body) 
    yield FormRequest(self.postUrl, formdata={'a':a, 'pic':pic}, meta={'cookiejar': response.meta['cookiejar']}, callback=self.parse) 

def parse(self, response): 
    # do process source code 

任何人都可以解釋爲什麼不起作用?

+0

你可以檢查是否在setttings.py文件中啓用了cookie(HTTPCACHE_ENABLED = True) – MrPandav

+0

@MrPandav我已經完成了它,但不起作用。 –

+0

cookie的參數應該是COOKIES_ENABLED = True(默認啓用) 您是否嘗試過使用COOKIES_DEBUG = True並查看是否所有cookie都使用相同的cookie會話http://doc.scrapy.org/en/latest/專題/下載,middleware.html?亮點=餅乾餅乾#調試 – MrPandav

回答

0

好吧,最簡單最有力的方法是打開firebug,看看請求標題中究竟是什麼,然後複製所有的值,除了會改變的cookie之外,需要你在程序中設置它。 如瀏覽器。