2012-03-22 97 views
8

ウェブページからテキストを読みたい。私はWebページのHTMLコードを取得したくありません。私はこのコードを見つけました:Javaを使ってWebページからテキストを読み取る方法は?

try { 
     // Create a URL for the desired page 
     URL url = new URL("http://www.uefa.com/uefa/aboutuefa/organisation/congress/news/newsid=1772321.html#uefa+moving+with+tide+history");  

     // Read all the text returned by the server 
     BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
     String str; 
     while ((str = in.readLine()) != null) { 
      str = in.readLine().toString(); 
      System.out.println(str); 
      // str is one line of text; readLine() strips the newline character(s) 
     } 
     in.close(); 
    } catch (MalformedURLException e) { 
    } catch (IOException e) { 
    } 

このコードは私にウェブページのHTMLコードを与えます。私はこのページの中にテキスト全体を入れたいです。 Javaでこれをどうすればできますか?

+1

HTMLタグのテキストを解析するだけです。そこから、あなたが望む情報を見つけてそこから抽出することができます。 –

+0

DOMへのHTMLを探しているならhttp://stackoverflow.com/questions/457684/reading-html-file-to-dom-tree-using-javaが助けになります。 –

+2

FYI - 繰り返しごとにin.readLine()を呼び出すので、実際には奇数行ごとにスキップします。 (私はこのコードのバグを指摘しておかなければならないと思っていました。なぜなら、これはJavaを使ったウェブページの読み込みでのGoogle検索の最初の結果の1つです)。 – JPProgrammer

答えて

13

を試すことができます。

0

現在のコードで取得したコンテンツを取り出し、解析して、必要なテキストが含まれているタグを探す必要があります。サックスパーサーはこの仕事に適しています。

また、特定のテキストではない場合は、すべてのタグを削除して、テキストだけを残してください。あなたは正規表現を使うことができると思います。

4

JSoupを使用してください。

CSSスタイルセレクタを使用してコンテンツを解析することができます。

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>"; 
Document doc = Jsoup.parse(html); 
String text = doc.body().text(); // "An example link" 

この例では、自分のサイト上の1からの抜粋です:

この例では、あなたは、このためにjsoupを見てしたいことがあり

Document doc = Jsoup.connect("http://www.uefa.com/uefa/aboutuefa/organisation/congress/news/newsid=1772321.html#uefa+moving+with+tide+history").get(); 
String textContents = doc.select(".newsText").first().text(); 
0

HtmlCleaner jarを使用することもできます。 以下はそのコードです。

HtmlCleaner cleaner = new HtmlCleaner(); 
TagNode node = cleaner.clean(url); 

System.out.println(node.getText().toString()); 
関連する問題