【问题标题】:How to grab Chinese characters from HTML code using JAVA inputStream?如何使用 JAVA inputStream 从 HTML 代码中抓取汉字?
【发布时间】:2016-10-25 10:14:34
【问题描述】:

我想使用以下方法从网站下载一些数据。

下载英文/数字内容没有问题,但我尝试抓取中文内容时,它不会生成正确的中文字符。

String url = "https://hk.finance.yahoo.com/q/ct?s=1928.HK";         
URL yahooUrl = new URL(url);
reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream()));
String line ="";
while((line =reader.readLine()) != null){
    htmlData.append(line);
}
Pattern p = Pattern.compile(
Pattern.quote("<div class=\"title\"><h2>")+ "(.*?)"
                    +Pattern.quote("</h2>"));
Matcher match = p.matcher(htmlData.toString());
if(match.find()){
    stockName = match.group(1);
}

有人知道如何使用 Java 输入流从互联网上抓取其他语言的内容吗?

【问题讨论】:

    标签: java utf-8 web-scraping inputstream decode


    【解决方案1】:

    在您的情况下,您没有为InputStreamReader 指定字符编码,因此接受平台的默认字符集。要阅读汉字,请使用UTF-8 字符集:

    reader = new BufferedReader(new InputStreamReader(yahooUrl.openStream(), "UTF-8"));
    

    【讨论】:

    • 谢谢!这是你提到的字符编码的问题,但它适用于 UTF-8。
    • 太棒了!那么最好使用“UTF-8”,我会更正答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2016-02-21
    • 2023-04-06
    • 2021-03-08
    • 1970-01-01
    • 2015-02-13
    相关资源
    最近更新 更多