当我打开雅虎电影网站时,说黑暗骑士(http://movies.yahoo.com/movie/the-dark-knight/),根据Broswer(在我的情况下,Chrome vs Explorer),网站的浏览方式不同。所以HTML代码彼此不同。 为了通过Chrome获取HTML源代码,我在java中编码如下:
StringBuilder parsedContentFromUrl = new StringBuilder();
HttpURLConnection uc;
uc = (HttpURLConnection) url.openConnection();
uc.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 CoolNovo/2.0.9.20");
uc.setRequestMethod("GET");
uc.connect();
uc.getInputStream();
BufferedInputStream in = new BufferedInputStream(uc.getInputStream());
int ch;
while((ch = in.read()) != -1) {
parsedContentFromUrl.append((char) ch);
}
String content = parsedContentFromUrl.toString();
虽然我想从CHROME获取HTML代码,但输出来自EXPLORER。请告诉我如何使用JAVA获取Chrome版HTML。
答案 0 :(得分:2)
到目前为止您所写的内容将返回初始数据流。要在浏览器中复制行为,您需要实现浏览器的所有功能(html解析,DOM构建,javascript执行,css呈现,获取链接数据等)以处理动态生成的DOM内容。从HttpURLConnection
读取数据只是许多必需步骤中的第一步。当你完成时,你将复制一个现代浏览器。这是一项巨大的工作。