Javascript 如何以编程方式捕获带有强制更新的网页
我需要捕获一个网站,并寻找一个合适的库或程序来做到这一点。该网站使用Java脚本并将更新推送到页面,我需要捕获这些更新以及页面本身。我使用curl来捕获页面本身,但我不知道如何捕获更新。如果有选择,我会使用C++。 问候看一看 我实际上并没有在愤怒中使用它,所以我不确定它是否能满足你的需求。我遇到过它,它可以与用Python编写的web爬行和屏幕抓取框架一起随意使用Javascript 如何以编程方式捕获带有强制更新的网页,javascript,c++,html,Javascript,C++,Html,我需要捕获一个网站,并寻找一个合适的库或程序来做到这一点。该网站使用Java脚本并将更新推送到页面,我需要捕获这些更新以及页面本身。我使用curl来捕获页面本身,但我不知道如何捕获更新。如果有选择,我会使用C++。 问候看一看 我实际上并没有在愤怒中使用它,所以我不确定它是否能满足你的需求。我遇到过它,它可以与用Python编写的web爬行和屏幕抓取框架一起随意使用 或者,您可以对JavaScript推送更新的执行方式进行反向工程,并直接访问这些更新。听起来您需要存储这些更新和/或将它们应用于基
或者,您可以对JavaScript推送更新的执行方式进行反向工程,并直接访问这些更新。听起来您需要存储这些更新和/或将它们应用于基本HTML页面。问题是您的网页正在更新,因为脚本代码正在页面上执行。使用curl不会让你达到目的 不确定你的确切需求。。但是您可以编写一个javascript injector bookmarklet,它可以在任何网页上添加一个按钮,并允许您随时手动获取DOM或正文html。。。这是许多剪辑标记应用程序的工作方式
如果您需要在更新发生时自动捕获更新的内容,如电影。。如果你还想使用C++和卷曲来找出页面中的JavaScript,我想它只是使用计时器发送Ajax请求并更新页面(虽然它可能更复杂)。 使用firefox和firebug之类的工具(你想要的是“网络”间谍)查看它是什么类型的请求-你会得到:
- 请求的url
- 参数
- 返回的内容(可以是html、文本、xml或json)
- 监视DOM树的更新(HTMLDOM级别2有各种“变异”事件,但我从未使用过它们,因此我对它们不太了解,也不知道它们是否“工作”//受支持-请参阅)。甚至有一种可能性,这种东西可以工作,这意味着你不必制作一个完整的firefox插件-例如,应该开始(你不想跟踪“加载”,而是类似“DOMSubtreeModified”)。如果变异事件不起作用,您可以随时使用计时器比较html内容
- 或者像firebug那样监视网络请求并处理结果
<附录:这是/不是/是C++的一个工作。无论如何,如果你用C++来做,你最终会逆向工程JS,所以你最好还是先学习足够的JS来使用GRASEMONKEY。 < P>如果你正在寻找静态网页抓取(Python)是最好的和最简单的。 如果您希望刮取一些javascript呈现的代码或其他东西,则在呈现页面之前无法完成,因此仅使用BeautifulSoup是不可能的。您必须使用无头浏览器,如(使用XULRunner),它在无头浏览器上呈现javascript内容,并且该呈现内容的输出可以用作BeautifulSoup scraper的输入