2016-06-11 2 views
0

Я хочу использовать тот же сеанс для доступа к некоторым URL-адресам. После прочтения документов о 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

Вы можете проверить, включен ли файл cookie в файле settings.py (HTTPCACHE_ENABLED = True) – MrPandav

+0

@MrPandav Я сделал это, но не работает. –

+0

параметр для cookie будет COOKIES_ENABLED = True (который включен по умолчанию) также, вы пытались использовать COOKIES_DEBUG = True и посмотреть, используется ли тот же сеанс cookie для всех http://doc.scrapy.org/en/latest/ темы/загрузчик-middleware.html? изюминка = печенье # печенье-отладка – MrPandav

ответ

0

Хорошо, простейший и мощный способ открыть firebug, чтобы увидеть, что именно находится в заголовках запроса, а затем скопировать все значение, за исключением вещей, таких как cookie, которые будут меняться, что вам нужно было установить в программе. Будьте похожи на браузер.

Смежные вопросы