2016-03-08 29 views
0

我一直在写一些代码到一个网站,并将HTML代码复制到一个文本文件。问题是一些代码被替换为“& nbsp”。 这是我使用的代码:如何在不用“ ”代替部分HTML代码的情况下使用java下载完整的网页?

public void addRecords() throws IOException{ 

    URL google = new URL("Insert Website Here"); 
    BufferedReader in = new BufferedReader(
      new InputStreamReader(google.openStream())); 

    String inputLine; 
    while ((inputLine = in.readLine()) != null){ 
     System.out.println(inputLine); 
     z.format("%s \n ", (inputLine)); 
    } 
    in.close(); 
} 
+1

HTML中包含'' ,这是一个不可间断的空格HTML实体。 –

回答

1
  1. 阅读网页变成一个连续的缓冲区。
  2. 替换“& nbsp;”与“”。
  3. 写入文本文件。

选项2

  1. 阅读网页(你现在的样子)。
  2. 获取网页的一行。
  3. 替换“& nbsp;”与“”。
  4. 写一行网页。
  5. 如果更多的线,转到步骤1。
+0

这个问题是我们需要所有的代码,只需要替换“ ”,没有什么会导致我丢失数据。 –

0

有迹象表明,在浏览器中被显示为特殊字符形式&...;的许多HTML实体。你甚至可以有免费号码,字符代码:&8233;

有一个Apache库commons lang类似UNESCAPE功能:

html = StringEscapeUtils.unescapeHtml4(html); 
0

你可以尝试这样的事情:

System.out.println(inputLine.replaceAll(" "," ")); 

OBS>请注意,您的HTML页面也许会包含其他字符逃脱,所以这个解决方案将不太好重用。

你可以参照公郎Apache项目在这个职位在这里看到: Replace HTML codes with equivalent characters in Java

相关问题