如何在没有第三方库的情况下完全解析HTML?

时间:2015-04-15 10:05:54

标签: java html ajax parsing load

我对这个问题感到困惑。

我可以像下面那样解析HTML。

package org.owls.parser.html;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HTMLParser {
    public static String getHTTPStringsFromWeb(String urlStr) throws Exception {
        StringBuffer sb = new StringBuffer();
        URL url = new URL(urlStr);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();

        BufferedReader br = null;
        if(con.getResponseCode() == HttpURLConnection.HTTP_OK)
        {
            br = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String line = "";
            while((line = br.readLine()) != null){
                sb.append(line);
            }
            br.close();
        }
        return sb.toString();
    }
}

此代码运行良好,但存在问题。此代码无法获取由ajax结果组成的动态数据。

所以我想获得整页。可能吗?

人们谈论jsoup,但我想知道无论如何都要用本机来实现。

谢谢:D

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作存在固有问题,您需要Web浏览器/环境来执行ajax请求。将它们读成字符串并查找网址是不够的,这些功能可能会对您无法支持的数据做一些特别的事情。

你必须使用像phantomjs这样可以在无头环境中加载和解析页面的东西