cnki:headers中间件处理cookie字符串

main
zhaoxiangpeng 4 weeks ago
parent 6c0d732877
commit ad54448faf

@ -104,13 +104,25 @@ from scrapy.http.headers import Headers
class CnkiSearchHeadersDownloaderMiddleware: class CnkiSearchHeadersDownloaderMiddleware:
def __init__(self, custom_headers: dict): def __init__(self, custom_headers: dict, cookies_str: str):
self.custom_headers = custom_headers self.custom_headers = custom_headers
self.custom_cookies = self._parse_cookies_str(cookies_str)
@classmethod @classmethod
def from_crawler(cls, crawler): def from_crawler(cls, crawler):
return cls(custom_headers=crawler.settings['SEARCH_REQUEST_HEADERS']) return cls(
custom_headers=crawler.settings['SEARCH_REQUEST_HEADERS'],
cookies_str=crawler.settings['SEARCH_REQUEST_COOKIES_STR']
)
def _parse_cookies_str(self, cookies_str):
cookies = {}
for cookie in cookies_str.split(';'):
key, value = cookie.split('=', 1)
cookies[key.strip()] = value.strip()
return cookies
def process_request(self, request, spider): def process_request(self, request, spider):
request.headers = Headers(self.custom_headers) request.headers = Headers(self.custom_headers)
request.cookies = self.custom_cookies
return None return None

Loading…
Cancel
Save