2012-01-27 4 views
1

Twitterでpage title,descriptionkeywordsを取得します。twitterのタイトル、説明、キーワードをjavaで取得

私はこれについて何度もゴーグルしていますが、私は解決策を得ることができませんでした。すべて私はISO-8859文字セット形式で応答しました。私がUTF-8文字セット形式で応答するのを手伝ってください。私は、このためのコードの下に使用さ

public class TitDesKey 
{ 
     public static void main (String[] args) throws IOException 
     { 
      String inputLine,source= null,result_tit= null,result_des= null,result_key= null; 
       try 
       { 
         URL url = new URL("http://www.twitter.com"); 

         URLConnection conn = url.openConnection(); 
         conn.setRequestProperty("User-Agent","Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1)"); 
         BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));       


         while ((inputLine = in.readLine()) != null) 
         { 
          source=source+" "+inputLine; 
          if(inputLine.contains("</head>")) 
          { 
           break; 
          } 
         } 
       } 
       catch (MalformedURLException e) 
       { 
        System.out.println("Please Enter Write Information"); 
       } 
       catch (IOException e) 
       { 
        System.out.println("Please Enter Write Information"); 
       } 


//    Title Data 
       Pattern PATTERN_tit = Pattern.compile("<title>(.*?)</title>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL); 

       Matcher m_tit = PATTERN_tit.matcher(source); 
       while (m_tit.find()) 
       { 
        result_tit = m_tit.group(1); 
        result_tit = result_tit.replace("/", "").trim(); 
        System.out.println(result_tit); 
       }  

//    Description Data 
       Pattern Pattern_dis = Pattern.compile("<meta name=\"description\" content=(.*?)>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL); 

       Matcher m_dis = Pattern_dis.matcher(source); 
       while (m_dis.find()) 
       { 
        result_des = m_dis.group(1); 
        result_des = result_des.replace("/", "").trim(); 
        System.out.println(result_des); 
       } 

//    Keyword Data 
       Pattern Pattern_key = Pattern.compile("<meta name=\"keywords\" content=(.*?)>",Pattern.CASE_INSENSITIVE|Pattern.DOTALL); 

       Matcher m_key = Pattern_key.matcher(source); 
       while (m_key.find()) 
       { 
        result_key = m_key.group(1); 
        result_key = result_key.replace("/", "").trim(); 
        System.out.println(result_key); 
       } 
     } 
} 

は事前にありがとうございます。

+1

あなたはそれが入ったキャラクタセット(この場合はラテン語1)で応答を取ってからそれをUTF-8に変換する必要があります。 –

+0

このようなリクエストプロパティ "Accept-Charset:utf-8"を設定しようとしましたか? – korifey

+0

私はこれをBufferedReader in = new BufferedReader(新しいInputStreamReader(conn.getInputStream()、 "utf-8"))で使用しました。 –

答えて

1

フェッチしているページがすでにUTF-8にある場合は、オーバーロードされたInputStreamReaderコンストラクタを使用して、Charsetも受け入れます。 UTF-8を使用するとOKです。

Documentation reference

+0

私はtwitterから取得している形式はISO-8859で、UTF-8で変換しています。 "新しいInputStreamReader(conn.getInputStream()、" UTF-8 ")" –

+0

UTf-8これは私にこの出力 "???????" –

関連する問題