在纯Java中检索呈现的HTML DOM
我知道这里已经有一些类似的问题了。但我不想用Java构建浏览器,我只想看到完整生成(或“呈现”)的源代码。就像我在浏览器中查看生成的DOM一样。有人知道这方面的工具吗 我看了一下和,但它们似乎无法正确地呈现更复杂的网站。尤其是当有AJAX调用在站点加载后向其添加内容时。我真的需要一个工具,它做的浏览器一样,没有实际的显示它。我最终必须遥控浏览器吗 有人有这方面的经验吗在纯Java中检索呈现的HTML DOM,java,javascript,ajax,browser,rendering,Java,Javascript,Ajax,Browser,Rendering,我知道这里已经有一些类似的问题了。但我不想用Java构建浏览器,我只想看到完整生成(或“呈现”)的源代码。就像我在浏览器中查看生成的DOM一样。有人知道这方面的工具吗 我看了一下和,但它们似乎无法正确地呈现更复杂的网站。尤其是当有AJAX调用在站点加载后向其添加内容时。我真的需要一个工具,它做的浏览器一样,没有实际的显示它。我最终必须遥控浏览器吗 有人有这方面的经验吗 可以找到一个非常类似的问题,但没有任何令人满意的答案。我不相信存在一个在页面加载后对异步调用进行抓取的库 我的建议是: 使用Co
可以找到一个非常类似的问题,但没有任何令人满意的答案。我不相信存在一个在页面加载后对异步调用进行抓取的库 我的建议是:
希望能有所帮助。硒做一些类似的事情。您需要在计算机上安装selenium遥控器。然后您可以将url请求传递给selenium。Selenium将打开浏览器,呈现url中指定的html/dhtml页面。之后,您可以通过查询selenium来获得整个dom。您可以通过编码完成所有这些工作
请注意:您需要安装slenium webdriver或selenium遥控器,而不是selenium ide。我必须自己回答这个问题。。。最后,我找到的最好的解决方案实际上就是HtmlUnit。这对我来说太慢了。所以我建立了自己的工具,当然需要手动设置来调用所需的链接。但是,它不必等待任何js超时或类似情况,而是解析页面中请求的信息并执行所需的调用。这需要大量的手工工作,但似乎没有其他解决方案能够足够快地工作。您需要查看呈现的HTML或源代码吗?我不需要查看可视化呈现页面,我需要查看生成的源代码。就像firebug在DOM中展示的一样。你看过Selenium吗?我不知道如何使用它来满足您的要求,但可能有一个浏览器驱动程序的后门api。如果您只需要提供URL的呈现HTML,您可以尝试我很想知道一个解决方案,而无需使用浏览器,特别是javascriptI生成的元素,我已经在很多情况下这样做了,但在更复杂的情况下,这是相当不方便的。无论如何谢谢你!非常感谢您的提示,这可能是最终的解决方案。但我不想真正启动浏览器。它可能太慢了。。。我需要评估一下。启动浏览器真的很奇怪。也许你可以用一些浏览器引擎来代替浏览器。但在这种情况下,我认为你不能使用硒,这可能会增加头部。我认为通过读取url来生成整个dom并不容易。会有一些东西,比如在body-onload或aftet-ajax请求中完成的动态操作。是的。我还刚刚从另一篇文章中意识到,selenium支持“无头”处理,但随后再次使用了HtmlUnit。HtmlUnit做得很好,但似乎很慢,有时不如普通浏览器工作。selenium RC(远程控制)通常非常慢。如果您的目标是webcrawling,那么这不是正确的方法。如果获取渲染的Dom是您项目的核心,那么您可以使用一些javascript渲染引擎。是的,我需要速度。你知道有哪些javascript呈现引擎能很好地集成到java中吗?