我对这个问题感到困惑。
我可以像下面那样解析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
答案 0 :(得分:0)
您尝试执行的操作存在固有问题,您需要Web浏览器/环境来执行ajax请求。将它们读成字符串并查找网址是不够的,这些功能可能会对您无法支持的数据做一些特别的事情。
你必须使用像phantomjs这样可以在无头环境中加载和解析页面的东西