2012-01-30 4 views
38

単純なWebサイトを解析し、そのWebサイトから情報を取得します。WebサイトのHTMLをJAVAで解析する

私はDocumentBuilderFactoryでXMLファイルを解析するために使用しましたが、私はhtmlファイルに対して同じことを試みましたが、常に無限ループに陥りました。

何が問題なのですか?または、与えられたhtmlタグのWebサイトからデータを削る簡単な方法はありますか?

+0

まず、ファイルの代わりに文字列を使用できます。どこが無限ループに入っていますか?たぶんあなたがその問題を抱えているように見えないURLからの入力ストリームのため。 –

答えて

78

これを実行する方がずっと簡単です。 JSoupを使用することをおすすめします。

Elements body = doc.select("body"); 

それとも、すべてのリンクしたい場合:

Elements links = doc.select("body a"); 

をあなたはもはや接続を取得する必要がありますかJSoupを使用すると、

Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); 
Elements newsHeadlines = doc.select("#mp-itn b a"); 

それとも、体をしたいなかったかのようなことを行うことができますストリームを処理します。シンプル。 jQueryを使用したことがあるなら、それは非常に似ています。

+0

まず、ありがとうございます!しかし、#mp-itn b aとは何ですか? – CanCeylan

+1

#mp-itnは 'id =" mp-itn "' –

+1

のコンテナです。編集を参照してください。 CSSセレクターがどのように機能するかを理解することが本当に役に立ちます。 –

5

HTMLは常に有効な形式のXMLではありません。 XMLパーサの代わりに特別なHTMLパーサを試してみてください。使用可能なさまざまなものがいくつかあります:確かに

http://java-source.net/open-source/html-parsers

19

JSoupが答えです。 ;-)