Как авторизоваться внутри SitemapSpider
У меня есть паук, который получает данные через sitemap.xml, однако когда я добавляю авторизацию перед запросами это переопределяет метод start_requests, что нарушает логику класса.
class OmegaSpider(SitemapSpider):
name = 'omega'
allowed_domains = ['idp.etsp.ru', 'www.etsp.ru']
sitemap_urls = ['https://www.etsp.ru/sitemap.xml']
sitemap_rules = [('/catalogue/', 'parse_item')]
def start_requests(self):
login_url = 'https://idp.etsp.ru/Account/Login'
return [Request(login_url, callback=self.login)]
def login(self, response: Response):
token = response.css("input[name=__RequestVerificationToken]::attr(value)").extract_first()
return scrapy.FormRequest.from_response(
response,
formdata={
'__RequestVerificationToken': token,
'Username': 'name',
'Password': 'pass'
},
callback=self.start_scraping)
def start_scraping(self, response: Response):
cookies_dict = {cookie['name']: cookie['value'] for cookie in response.headers.getlist("Set-Cookie")}
for url in self.sitemap_urls:
yield scrapy.Request(url=url, cookies=cookies_dict, callback=self.parse_item)
def parse_item(self, response: Response):
pass
После авторизации скрипт ожидаемо не начинает анализировать sitemap. Подскажите, как можно решить вопрос авторизации и дальнейшей обработки sitemap?