import scrapy
class TestSpider(scrapy.Spider):
name = 'test'
start_urls = ['https://www.icsi.in/student/Members/MemberSearch.aspx']
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'dnn_ctr410_MemberSearch_txtMembershipNumber': '61915'},
callback=self.after_login
)
def after_login(self, response):
print(response)
return response由于表单有多个字段,其中填充了与会话相关的数据,因此我使用了from_response,并且仅使用输入的id对成员资格编号进行了加法运算。
但是,这不起作用,我收到一个错误,声明为Spider must return request, item, or None, got 'HtmlResponse'
发布于 2020-07-29 14:04:54
你必须从after_login方法返回正确的类型。异常消息中提到的类型列表。所以你的after_login方法应该看起来像这样:
def after_login(self, response):
print(response)
# response.css('') find something using CSS selector
# response.xpath('') or using xpath
yield {'some_field_name': 'field value'}在您的示例中,您返回了具有HtmlResponse类型的response,但scrapy需要其他类型,如request, item, or None
https://stackoverflow.com/questions/63147178
复制相似问题