关于Java中网页表示的问题

时间:2010-04-11 05:19:10

标签: java html

我已经按照教程并提出了以下方法将网页内容读入CharSequence

 public static CharSequence getURLContent(URL url) throws IOException {
       URLConnection conn = url.openConnection();
       String encoding = conn.getContentEncoding();
       if (encoding == null) {
         encoding = "ISO-8859-1";
       }
       BufferedReader br = new BufferedReader(new
           InputStreamReader(conn.getInputStream(),encoding));
       StringBuilder sb = new StringBuilder(16384);
       try {
         String line;
         while ((line = br.readLine()) != null) {
           sb.append(line);
           sb.append('\n');
         }
       } finally {
         br.close();
       }
       return sb;
     }

它将返回url指定的网页的表示。 但是,这种表示方式与我在Firefox中使用“查看页面源”的方式有很大的不同,因为我需要从原始网页(原始“查看页面源文件”中的某些数据段)中抓取数据,所以它总是会失败在此Java表示上查找所需的文本。 我在某个地方出错了吗?我需要你的建议,非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您需要使用HTML解析库来构建表示此网页上的HTML文本的数据结构。我的建议是使用这个库:http://htmlparser.sourceforge.net

答案 1 :(得分:1)

请求useragent和cookie等内容可以更改服务器在响应中返回的内容。因此问题更可能出在您发送的请求的详细信息中,而不是您阅读响应的方式。

HttpClient之类的内容可让您更轻松地模拟从浏览器发送的请求。