【问题标题】:java html parser for reading javascript generated contents用于读取 javascript 生成内容的 java html 解析器
【发布时间】:2014-06-23 23:31:25
【问题描述】:

我正在使用jsoup 通过以下功能阅读网页。

public Document getDocuement(String url){
        Document doc = null;
        try {
            doc = Jsoup.connect(url).timeout(20*1000).userAgent("Mozilla").get();
        } catch (Exception e) {
            return null;
        }
        return doc;
    }

但每当我试图阅读包含javascript 生成内容的网页时,jsoup 不会阅读这些内容。即,页面的实际内容是由一些javascript 调用加载的。因此它不存在于该链接的页面源中。例如这个博客:http://blog.rapporter.net/search/label/r。在使用Jsoup 解析页面时,有没有办法获得 javascript 生成的内容?如果没有,请建议任何可以解决此问题的 java html 解析器..

【问题讨论】:

    标签: java html-parsing jsoup web-crawler


    【解决方案1】:

    你不能用 Jsoup 做到这一点。 Jsoup 解析 HTML,通常要等待 AJAX 请求或 JavaScript 内容,您需要一个可以执行此 JavaScript 的浏览器,以便从中获取一些输出。 JavaScript 逻辑可能很复杂,所以执行 JavaScript 和加载内容并不是一件小事(看看浏览器、JS 和 DOM 有多复杂)。

    【讨论】:

    • 是否还有其他 html 解析器可以解析此类链接?
    • 不幸的是,没有真正的解决方案。您可以做的一个糟糕的解决方法是:在浏览器(例如 Chrome)中打开页面并转到开发人员工具。在那里,您可以看到网站向服务器发出的所有请求(所有 JavaScript 请求)。每个请求都是一个 URL,因此您可以获取这些 URL 并解析响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2011-06-13
    • 2015-04-02
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多