我想抓一些动态加载其组件的网页.这个页面有一个onload脚本,我在浏览器中输入URL后3-5秒就可以看到完整的页面.
问题是,当我打电话时br.open('URL'),响应是0秒的网页.HTML(我想要的)和结果之间有3-5秒的差异br.open('URL').
使用 mechanize 处理具有丰富 javascript 内容的网页并不容易,但是根据不同的情况,有一些方法可以得到你想要的东西。
如果发出一些 json 请求来创建内容,那么您可以调用该 url 并尝试解析响应以获取内容,然后尝试正确加入它。
如果您需要使用某些表单,您可以创建一些表单字段并在 mechanize 中设置它们的值。POST或者,只需编写一个方法来对您的数据进行编码GET(引用特殊字符等)并使用mechanize.browser.open方法发送它们。
如果页面具有一些基于 javascript 的安全功能(例如在发布数据之前进行一些特殊编码以形成数据),那么您可以使用像 javascript 应用程序服务器这样的Node.js来处理一些 javascript 代码块。
但事实上,上述一些选项并不容易做到,在使用 mechanize 进行此类项目之前必须三思而后行。