我对这个问题很困惑。
我可以像下面这样解析 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
最佳答案
您尝试执行的操作存在固有问题,您需要一个 Web 浏览器/环境来执行 ajax 请求。将它们读入字符串并查找 url 是不够的,这些函数可能正在对您无法支持的数据做一些特殊的事情。
你将不得不使用像 phantomjs 这样的东西,它可以在 headless 环境中加载和解析页面
关于java - 如何在没有第三方库的情况下完全解析 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647354/