1
私はいくつかのHTMLデータを収集するプログラムを持っています。JAVA解析特殊文字
public class Uni_Extract {
public static void main(String[] args) throws Exception {
System.out.println("Started");
String csvFile = "C://Users/Kennedy/Desktop/university.csv";
FileWriter writer = new FileWriter(csvFile);
for (int i=2; i<=2; i++){
String url = "http://www.4icu.org/reviews/index"+i+".htm";
Document doc = Jsoup.connect(url).userAgent("Mozilla").get();
Elements cells = doc.select("td.i");
Iterator<Element> iterator = cells.iterator();
while (iterator.hasNext()) {
Element cell = iterator.next();
String university = Jsoup.parse((cell.select("a").text())).text();
university = StringEscapeUtils.escapeHtml(university);
String country = cell.nextElementSibling().select("img").attr("alt");
System.out.printf("country : %s, university : %s %n", country, university);
}
}
writer.flush();
writer.close();
}
}
しかし、私のプログラムでは、いくつかの特殊なチャーターが出現すると、元のHTMLコードが返されます。どのように私はそれらを解析する必要がありますか?
たとえば、「ö」を特殊文字として含むAzerbaycan D ö vlet Pedaqoji Universitetiが返されますか?どのように私はそれと他の同様のケースを解決することができますか?
はここでHTMLに実際に何があるかです: 'Azerbaycan D ö vlet Aqrar Universiteti'。私はあなたのコードが出力するものと仮定します。おそらく 'ö'の代わりに 'ö'を見たいと思うでしょう。もしそうなら、あなたが探しているのはHTMLをエスケープする方法です。 – smarx
ああ、あなたのコードを見ると、自分で 'escapeHtml'を呼んでいるようです。あなたがそれをやめたらどうなりますか? ( 'Jsoup'はすでにあなたのためにエスケープしていますが、何らかの理由でそれをエスケープしています) – smarx
あなたのコードは、存在しない変数' university1'を使用しようとしています。実際の実行例を共有できますか? – smarx