2011-10-19 19 views
2

URLを取得するプログラムを作りたいと思っています。例えば は私がURLから情報を取得する

ブラック図書館ファンタジーThanquol & Boneripper Thanquolと骨リッパーウォーハンマーのように、「タグ」タブの下にあるすべての単語を検索するにはどうすればよい librarything

から、以下のURLを与えますか?

私はjavaを使用してデータマイニングラッパーを設計していますが、どのように起動するのかはわかりません。誰か助けてくれますか?

編集: あなたは私に素晴らしい助けをくれましたが、他に何か質問したいと思います。 すべてのタグについて、「数字」ボタンを押すと、各タグが何回使用されたかがわかります。その番号もどのように取得できますか?

+0

私は、HTMLをプッシュするつもりならPythonまたはPerlの使用をお勧めします。私はあなたの例に似たプログラムを作ったときにPythonで良い経験をしてきましたが、現時点で何かを実際に共有することはできません。 [PythonでのHTMLの解析](http://docs.python.org/library/htmlparser.html)専用のライブラリがあります。また、[regex](http://docs.python.org/ library/re.html)および[urllib](http://docs.python.org/library/urllib.html)を参照してください。 – Griffin

+1

@Griffin:DOMベースのパーサであると思われますが、醜い定型コードのみになります。また、正規表現を使用してHTMLを解析するのは簡単です(http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhuway.html)。 – BalusC

+0

@BalusC私はHTMLパーサを自分で使用していません。正規表現を使用した後、FreenodeのPythonチャンネルでそのライブラリにリダイレクトされました。それに関しては意見が異なるようですが、大丈夫だと言う人もいれば大丈夫だと言う人もいます。リンクをありがとう、私はそれをチェックします。 – Griffin

答えて

4

JsoupのようなHTMLパーサーを使用できます。単純なものを使用して、目的のHTML要素を選択することができます。CSS selectors

たとえば、

Black Library 
fantasy 
Thanquol & Boneripper 
Thanquol and Bone Ripper 
Warhammer 

を印刷し

Document document = Jsoup.connect("http://www.librarything.com/work/9767358/78536487").get(); 
Elements tags = document.select(".tags .tag a"); 

for (Element tag : tags) { 
    System.out.println(tag.text()); 
} 

あなたがウェブサイトのrobots.txt -if any-を読み、any-またはサーバー-ifサービスのウェブサイトの利用規約を読まなければならないことに注意してくださいは、遅かれ早かれ、IP-禁止される可能性があります。

+0

私はCSSセレクタとしてhttp://www.selectorgadget.com/を推奨し、有効なxPathを生成します – Aboelnour

+0

これは、HTMLからCSSを取得してElement.select(文字列セレクタ)関数で使用する単なるツールです。 – Aboelnour

0

PHPをページスクレイプで使用する前にこれを実行してから、HTMLを正規表現を使用して文字列として解析しました。

Example here

私は、Javaや他の言語で同様の何かがあります想像します。そのコンセプトは似ています:

  1. ページデータを読み込みます。
  2. データ、(すなわち正規表現で、またはDOMモデルを経由して、いくつかのCSSセレクタまたは一部のXPathセレクタを使用。
  3. は、あなたがデータで何をしたいですか解析:)

それは覚えておく価値がありますデータをマイニングして大規模に利益を得る/再配布することに感謝する人もいます。

関連する問題