首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让机械化等待网页“满”加载?

如何让机械化等待网页“满”加载?
EN

Stack Overflow用户
提问于 2012-01-12 18:07:28
回答 2查看 12.4K关注 0票数 11

我想抓取一些动态加载其组件的网页。这个页面有一个onload脚本,在我的浏览器中输入URL 3-5秒后,我可以看到完整的页面。

问题是,当我调用br.open('URL')时,响应是0秒的网页。在超文本标记语言(我想要的)和br.open('URL')的结果之间有3-5秒的差异。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-12 18:30:05

使用mechanize处理一个包含丰富javascripts内容的网页并不容易,但根据不同的情况,有一些方法可以获得您想要的内容。

  • 如果有一些json请求来创建内容,那么您可以调用这些urls并尝试解析响应以获取内容,然后尝试正确地连接它。
  • 如果您需要使用某些表单,您可以创建一些表单字段并在mechanize中设置它们的值。或者,只需编写一个将对POSTGET数据进行编码的方法(引号为特殊字符等)。
  • 如果页面有一些基于javascript的安全功能(比如在发布数据之前进行一些特殊的编码来形成数据),那么您可以使用node.js来处理一些javascript代码块。

但实际上,上面的一些选项并不容易做到,在为这类项目使用机械化之前,您必须三思。

票数 1
EN

Stack Overflow用户

发布于 2012-01-12 18:11:49

你遇到的问题是网页是通过javascript引擎呈现在你的web浏览器中的。然而,mechanize本身并不具备执行javascript的能力,因此,无论你等待多久,你都不会得到你所遗漏的HTML。

有关如何抓取动态生成的内容的更多信息,请查看此question

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8833239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档