【发布时间】:2010-11-15 08:04:56
【问题描述】:
我正在寻找一种从命令行处理网页和相关 Javascript 的方法,以便可以输出生成的 DOM 模型。
这样做的目的是识别页面中的表单,而无需使用正则表达式进行任何讨厌的 HTML(和 Javascript)解析。
是否有任何命令行工具可以做到这一点?所以假设性地说,一个命令行网络浏览器,它下载内容并将 DOM 输出为文本,而不是生成漂亮的页面。
【问题讨论】:
我正在寻找一种从命令行处理网页和相关 Javascript 的方法,以便可以输出生成的 DOM 模型。
这样做的目的是识别页面中的表单,而无需使用正则表达式进行任何讨厌的 HTML(和 Javascript)解析。
是否有任何命令行工具可以做到这一点?所以假设性地说,一个命令行网络浏览器,它下载内容并将 DOM 输出为文本,而不是生成漂亮的页面。
【问题讨论】:
我不知道,但我想强调你所建议的一个困难:
处理网页和相关的 Javascript
什么时候输出?许多网页都有时间敏感的 javascript,或者会影响 DOM 的 onclick/onhover 脚本。你想让这些被执行吗?全部,还是只有一部分?决定页面何时“完成”并准备好在 javascript 操作之后输出 DOM 并非易事。。 (在 javascript 操作之前,这是一个更容易的问题;只需等到 document.DOMReady 事件...)
编辑:我并不是说您根本不需要执行 javascript:您可能希望在加载过程中处理任何 document.write 部分,因为它们可能会写出一个表单……我是说这很难知道什么时候你已经完成了“足够”的 javascript...
【讨论】:
对于 java,我在htmlunit 方面有相当好的经验。
我还使用了BeautifulSoup python 库来解析表单和表单数据。无需指定正则表达式,因为它可以让您轻松遍历 DOM 树。
【讨论】: