前提・実現したいこと
excite翻訳をjavaから使ってみたいと思い、Yukun's Blogさん(https://yukun.info/java-excite-translation/)を参考にさせていただきました。
記載されているプログラムを試したところ、「ビルド成功」と表示されるのですが、本来ならば翻訳されるところにはnullとしか表示されませんでした。
原因として考えられることを教えていただきたいです。よろしくお願いいたします!
発生している問題・エラーメッセージ
run:
null
ビルド成功(合計時間: 1秒)
上記のように表示されます。エラーは出ていないのですが、翻訳ができていません。
該当のソースコード
java
1package excitetrans; 2 3import java.net.*; 4import java.util.regex.*; 5import java.io.*; 6/** 7 * Excite翻訳(http://www.excite.co.jp/world/)を利用するクラス 8 */ 9public class ExciteTrans { 10 private String direction; // 翻訳する言語設定 "ENJA" or "JAEN" 11 /** テスト用main() 12 * @param args */ 13 public static void main(String[] args) { 14 ExciteTrans et = new ExciteTrans(); 15 System.out.println(et.getTransText("Hello")); // 翻訳対象テキスト 16 } 17 /** コンストラクタ */ 18 public ExciteTrans() { direction ="ENJA"; } 19 public ExciteTrans(String str) { 20 if (str.equals("JAEN") || str.equals("ENJA")) 21 direction = str; 22 else 23 direction ="JAEN"; 24 } 25 /* 26 * テキストを翻訳 27 * @param before 翻訳前のテキスト 28 * @return 翻訳後のテキスト 29 */ 30 public String getTransText(String before) { 31 String afterText = null; // 翻訳されたテキスト 32 try { 33 // URLクラスのインスタンスを生成 34 URL exciteURL = 35 new URL("https://www.excite.co.jp/world/english/"); 36 // 接続します 37 URLConnection con = exciteURL.openConnection(); 38 // 出力を行うように設定 39 con.setDoOutput(true); 40 // クエリー文の生成・送信 41 try ( // 出力ストリームを取得 42 PrintWriter out = new PrintWriter(con.getOutputStream())) { 43 // クエリー文の生成・送信 44 out.print("before={"+ before +"}&wb_lp={"+ direction +"}"); 45 } 46 // 一行ずつ読み込む 47 try ( // 入力ストリームを取得 48 BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) { 49 // 一行ずつ読み込む 50 String aline; 51 // 抽出用の正規表現 52 String regex = "<textarea [^>].*after.*>(.*)"; 53 Pattern pattern = Pattern.compile(regex); 54 while ((aline = in.readLine()) != null) { 55 Matcher mc = pattern.matcher(aline); 56 if(mc.matches()) { 57 afterText = mc.group(1); 58 } } 59 // 入力ストリームを閉じる 60 } 61 } catch (IOException e) { 62 } 63 return afterText; 64 } 65}
試したこと
コードやURLを少し書きかえました。
補足情報(FW/ツールのバージョンなど)
NetBeans IDE 8.2を使っています。
回答2件
あなたの回答
tips
プレビュー