如何使用scrapy通过接受对话框?
我需要刮一个网站,有一个接受对话框,我需要首先通过。表格如下: 单击accept按钮,我将进入需要解析的表所在的页面。现在我有:如何使用scrapy通过接受对话框?,scrapy,Scrapy,我需要刮一个网站,有一个接受对话框,我需要首先通过。表格如下: 单击accept按钮,我将进入需要解析的表所在的页面。现在我有: # function to parse markup def parse(self, response): yield FormRequest(url="http://www.somedomain.com/lst_sale", method="POST",
# function to parse markup
def parse(self, response):
yield FormRequest(url="http://www.somedomain.com/lst_sale",
method="POST",
formdata={},
callback=self.parse_list)
def parse_list(self, response):
# do something...
问题是parse_list从未被调用,所以我假设表单post没有发生。有什么办法可以让它工作吗
谢谢 找到了答案。结果是我没有发送正确的值。现在可以使用:
def parse(self, response):
yield FormRequest.from_response(
response,
formdata={"value":"Accept"},
callback=self.after_accept)
def after_accept(self, response):
yield Request("http://example.com?some_vars=some_values", callback=self.parse_list)
def parse_list(self, response):
#begin scraping!
这将为我处理ASP.NET_会话ID。我在settings.py中设置了COOKIES_DEBUG=True,这表明会话确实得到了处理——这让我找到了问题的根源。希望如此。我现在明白这是一个饼干问题。我尝试过使用yield FormRequest.from_response(response,clickdata={“value”:“Accept”},callback=self.parse_list),但这也不起作用。思想?