我想抓取页面,然后转到下一个链接,如下所示:
<a href="#" onclick="return gotoPage('2');"> Next </a>
通过livehttpheaders扩展,我发现单击Next会生成一个带有大量“垃圾”的POST,如下所示:
encoded_session_hidden_map=H4sIAAAAAAAAALWZXWwj1RXHJ9n
我正在尝试在CrawlSpider
类上构建我的Spider ,但是我无法真正弄清楚如何编写代码,因为BaseSpider
我使用该parse()
方法来处理第一个URL(碰巧是登录表单),我在其中进行了POST:
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
问题内容: 假设我的网页上有这些元素。 我想单击带有文本的链接。如何使用 链接文本 来识别或单击该元素,而没有任何独特的属性,例如id或class。 在.Net中,我可以使用。nightwatch.js中的等效项是什么 问题答案: 定位器在内部使用XPath。 因此,使用XPath单击示例中的第二个链接: 请注意,根据内部HTML的不同,您可能需要连接子级并修剪空格:
我在Android上有一个,我希望任何嵌入的URL都可以点击。我使用了类,它将它们变成蓝色并加下划线。然而,我不知道如何让它们真正可以点击。 谢谢!
问题内容: 我正在使用Scrapy爬行网页。单击某些按钮时,仅会弹出一些我需要的信息(当然,单击后也会显示在HTML代码中)。 我发现Scrapy可以处理的形式(如登录)如图所示这里。但是问题在于没有表格可以填写,所以这不是我所需要的。 如何简单地单击一个按钮,然后显示我需要的信息? 我是否必须使用诸如机械化或lxml之类的外部库? 问题答案: Scrapy无法解释javascript。 如果你绝
问题内容: 我正在使用模块“ mechanize”在python中编写屏幕抓取脚本,我想在href中具有javascript:__ doPostBack的链接上使用mechanize.click_link()方法。我相信我要解析的页面正在使用AJAX。 注意:机械是mechanize.Browser() 单击链接后,我想检索页面源。 问题答案: 我不使用机械化,但是我在网上做了很多使用python
我有一个html链接
我必须提取表列“付款日期”中提到的每个日期的报告。每个日期都是报告的链接。所以,我一个接一个地点击所有日期以下载报告。 所以,这里的过程是,当我点击一个日期,它将下载该日期的报告。然后,我将单击“下一个日期”以获取该日期的报告。所以,我做了一个for循环来循环所有的链接,并得到所有日期的报告。 但它给了我一个陈旧的元素例外。单击第一个日期后,无法单击下一个日期。我遇到了错误和代码停止。 我该怎么解