【问题标题】:Getting access to the original HTML in HtmlUnit HtmlElement?访问 HtmlUnit HtmlElement 中的原始 HTML?
【发布时间】:2014-05-07 13:04:41
【问题描述】:

我正在使用 HtmlUnit 从网站读取内容。

一切都很完美,我正在阅读内容:

  HtmlDivision div = page.getHtmlElementById("my-id");

即使 div.asText() 返回预期的 String 对象,但我想将 <div>...</div> 中的原始 HTML 作为 String 对象。我该怎么做?

我不愿意将 HtlmUnit 更改为其他内容,因为网站希望客户端运行 JavaScript,而 HtmlUnit 似乎能够执行所需的操作。

【问题讨论】:

    标签: javascript htmlunit


    【解决方案1】:

    如果 原始 HTML 是指 HTMLUnit 已经格式化的 HTML 代码,那么您可以使用 div.asXml()。现在,如果您真的在寻找服务器发送给您的原始 HTML,那么您将找不到这样做的方法(至少到 v2.14)。

    现在,作为一种解决方法,您可以获取服务器发送给您的页面的整个文本以及以下答案:How to get the pure raw HTML of a page in HTMLUnit while ignoring JavaScript and CSS?

    附带说明一下,您可能应该三思而后行为什么需要 HTML 代码。 HTMLUnit 将让您从代码中获取数据,因此不需要存储源代码,而是存储其中包含的信息。只是我的 2 美分。

    【讨论】:

    • “原始 HTML”是指在页面加载和初始 JavaScript 运行之后存在的 HTML。 div.asText() 表明内容在那里,所以唯一的问题是在 HTML 中获取它。 div.asXml() 不返回纯 HTML(已经尝试过)。
    • 仔细观察,div.asXml() 似乎适用于格式良好的页面。正是那些格式错误的页面仍然会导致问题,但也许一个小的 hack 就可以了。我知道复制粘贴这个“原始”HTML 没有什么意义,我只想保留标题、段落等,这些都在asXml() 返回的 XML 中。
    猜你喜欢
    • 2017-01-06
    • 2017-07-20
    • 2011-02-27
    • 1970-01-01
    • 2014-01-25
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多