我想抓取页面,然后转到下一个链接,如下所示:
<a href="#" onclick="return gotoPage('2');"> Next </a>
scrapy能够解释该脚本的javascript代码吗?
通过livehttpheaders扩展,我发现单击Next会生成一个带有大量“垃圾”的POST,如下所示:
encoded_session_hidden_map=H4sIAAAAAAAAALWZXWwj1RXHJ9n
我正在尝试在CrawlSpider类上构建我的Spider ,但是我无法真正弄清楚如何编写代码,因为BaseSpider我使用该parse()方法来处理第一个URL(碰巧是登录表单),我在其中进行了POST:
CrawlSpider
BaseSpider
parse()
def logon(self, response): login_form_data={ 'email': 'user@example.com', 'password': 'mypass22', 'action': 'sign-in' } return [FormRequest.from_response(response, formnumber=0, formdata=login_form_data, callback=self.submit_next)]
然后我定义了commit_next()来告诉下一步该怎么做。我不知道如何告诉CrawlSpider在第一个URL上使用哪种方法?
我的抓取中的所有请求(第一个请求除外)都是POST请求。它们交替两种类型的请求:粘贴一些数据,然后单击“下一步”转到下一页。
实际方法如下:
如果可能,请简单地请求下一页,或者在适用的情况下再次使用FormRequest 所有这些都必须通过服务器响应机制来简化,例如:
你可以尝试dont_click = true在FormRequest.from_response
dont_click = true
FormRequest.from_response