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

How can I full parsing HTML without third party library?

这个问题我很疑惑

我可以像下面这样解析 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,但我想知道是否可以使用 native 获得它。

谢谢 :D

您尝试执行的操作存在固有问题,您需要一个网络 browser/environment 来执行 ajax 请求。将它们读入一个字符串并寻找 url 是不够的,这些函数可能正在对您无法支持的数据做一些特殊的事情。

您将不得不使用类似 phantomjs 的东西,它可以在无头环境中加载和解析页面