0

当我打开雅虎电影网站时,说黑暗骑士(http://movies.yahoo.com/movie/the-dark-knight/),根据 Broswer(在我的情况下,Chrome 与资源管理器)浏览网站的方式不同)。因此 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。

4

1 回答 1

2

您到目前为止所写的内容将返回初始数据流。要在浏览器中复制行为,您需要实现浏览器的所有功能(html 解析、DOM 构建、javascript 执行、css 渲染、获取链接数据等)来处理动态生成的 DOM 内容。从 a 读取数据HttpURLConnection只是许多必需步骤中的第一步。完成后,您将复制一个现代浏览器。这是一个巨大的工作量。

于 2013-09-24T07:42:36.373 回答