Ответ ОТЛАДКА: Сканировано (200) https://www.icsi.in/Student/Default.aspx?tabid=100&error=An%20unexpected%20error%20has%20occurred&content=0> (реферер: https://www.icsi.in/Student/Default.aspx?TabID=100) []
Ваш вопрос: как избежать правильной ошибки?Постарайтесь быть более конкретным в будущем.
Когда вы хотите почистить веб-страницу, вы должны проверить все это в своем браузере, увидеть все параметры, которые отправляются с запросом, и убедитесь, что вы делаете то же самое.на вашем пауке. У вас есть много параметров в вашем коде, но не все.
Смотрите мой код, который фактически решает вашу проблему:
import scrapy
class MySpider(scrapy.Spider):
name = 'icsi'
start_urls = ['https://www.icsi.in/Student/Default.aspx?TabID=100']
search_action_url = 'https://www.icsi.in/Student/Default.aspx?TabID=100'
def parse(self, response):
formdata = dict()
for input in response.css('form#Form input'):
name = input.xpath('./@name').get()
value = input.xpath('./@value').get()
formdata[name] = str(value) if value else ''
formdata['dnn$ctr410$MemberSearch$txtCpNumber'] = '16308'
formdata['__EVENTTARGET'] = 'dnn$ctr410$MemberSearch$btnSearch'
return scrapy.FormRequest(self.search_action_url, formdata=formdata, callback=self.parse_search)
def parse_search(self, response):
scrapy.shell.inspect_response(response, self)
return
Вы пропустили параметр __EVENTTARGET
, о котором на сайте сообщается, вы нажали кнопку «Поиск».