Я использую Scrapy для очистки данных с сайта, который использует ASP.NET.Когда я не вошел в систему, я могу очистить все данные, которые находятся в свободном доступе.Однако для запатентованного материала мне нужно войти в систему. Когда я вызываю FormRequest.from_response (), я не могу войти в систему.Любая идея, что мне не хватает?Вот мой паук:
def parse_login(self, response):
vs = response.xpath('//*[@name="__VIEWSTATE"]/@value').extract_first()
vsg = response.xpath('//*[@name="__VIEWSTATEGENERATOR"]/@value').extract_first()
ev = response.xpath('//*[@name="__EVENTVALIDATION"]/@value').extract_first()
return [scrapy.FormRequest.from_response(response=response,method='POST',formdata={
# '__EVENTTARGET':'',
# '__EVENTARGUMENT':'',
#'__VIEWSTATE':vs,
'ctl00$cph_main$txt_email:':login_user,
'ctl00$cph_main$txt_pass':login_password,
#'__VIEWSTATEGENERATOR':vsg,
#'__EVENTVALIDATION':'',
},callback=self.start_crawl)]
Вот данные формы после «проверки» страницы входа через «вкладку сети», метод POST с кодом состояния 302:
ToolkitScriptManager1_HiddenField:
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE: ‘VIEWSTATE_STRING’
__VIEWSTATEGENERATOR: C2EE9ABB
__EVENTVALIDATION: ‘EVENTVALIDATION_STRING’
ctl00$cph_main$txt_email: my_eml
ctl00$cph_main$txt_pass: my_pswrd
ctl00$cph_main$Button1: login