Я передаю файлы cookie из своего промежуточного программного обеспечения для загрузки.Я вижу, что банка обновлена.Но все существующие запросы выполняются без файлов cookie.
class MyCookies(CookiesMiddleware):
def get_cookies_emulate(self, url):
return [
{'domain': 'site.com', 'name': 'id', 'path': '/', 'value': '123456'},
{'domain': 'site.com', 'name': 'JSESSIONID', 'path': '/', 'value': '987654321'}
]
def process_request(self, request, spider):
if request.meta.get('dont_merge_cookies', False):
return
cookiejarkey = request.meta.get("cookiejar")
jar = self.jars[cookiejarkey]
request.headers.pop('Cookie', None)
jar.add_cookie_header(request)
self._debug_cookie(request, spider)
def process_response(self, request, response, spider):
new_response = HtmlResponse(response.url, body=response.body)
captcha_image_xpath = '//td[@width="50%" and ./img]'
if new_response.xpath(captcha_image_xpath).extract_first():
cookiejarkey = request.meta.get("cookiejar")
jar = self.jars[cookiejarkey]
print('JAR!!!', jar._cookies)
selen_cookies = self.get_cookies_emulate(url=response.url)
selen_cookies = [self._format_cookie(x) for x in selen_cookies]
headers = {'Set-Cookie': selen_cookies}
response = Response(request.url, headers=headers)
cookies = jar.make_cookies(response, request)
for cookie in cookies:
jar.set_cookie(cookie)
self._debug_set_cookie(response, spider)
request = request.replace(dont_filter=True, priority=99999)
return request
return response
Я вижу, что все запросы, созданные до вызова функции get_cookies_emulate, не получили файлы cookie.