skillup

技術ブログ

Java

Javaでのスクレイピング

投稿日:

スクレイピングというと一般的にはRubyが一番有名なようですが、もちろんスクレイピング自体はどの言語でも行うことができます。

スクレイピングの手法

スクレイピングは大きく分けると

  • 正規表現でデータを取得するケース
  • HTMLパーサーを使ってデータを取得するケース

に分かれます。

※必ずしもきれいに分かれるわけではないので一部正規表現、一部HTMLパーサーを使うというケースももちろんあります。

それぞれのメリット、デメリットを上げると下記のようなところでしょうか。

正規表現

メリット

どんな言語でも同じ方法で取得が行える。

ライブラリの知識などがいらない

デメリット

コード量が多くなり、またコードが汚くなる傾向にある

HTMLパーサー

メリット

コード量が少なく、コードがきれいになる

デメリット

ライブラリの学習コスト

Javaでのスクレイピング

Javaでのスクレイピングをする場合はjsoupというライブラリが便利です。

jsoup 

http://jsoup.org/

要素の取得の仕方はgetElementByIdなどidで一気に取得する方法もあれば、CSSセレクタを使い、jqueryのように取得する方法もあります。細かい取得方法などは参考リンクを。

参考リンク

http://qiita.com/opengl-8080/items/d4864bbc335d1e99a2d7

http://tm8r.hateblo.jp/entry/2013/11/26/125937

下記に私が作ったスクレイピングのソースがありますので、興味ある方はぜひ

https://github.com/umanari145/superScraping

 

-Java
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JAXRSによるRESTAPI作成方法

業務でJavaによりWEBAPI(Rsetful API)を作成する機会ががあったのでちょっとメモしておきます。 Contents1 RestAPIとは2 プログラムの作成方法について RestAPI …

no image

あるMapを元にして別のMapを作成

超小ネタ あるMapから別のMapを作る方法です。あるMapをもとに別のMap2を作るときです。 Map<String, String> Map2 = new HashMap<&gt …

no image

mavenでJavadoc出力

Netbeansでプロジェクトから右クリックでjavadocの生成はできますが、実はmavenでビルドするときにJavadocを生成できます。 ただ出力するだけではなくてパラーメータをいろいろとセット …

no image

設定ファイルの置き場所

一般的にレベルの高いソースとは保守性が高いものを指します。特にWEB系ですと仕様変更がしょっちゅうなので変更があったときにいかに少ない工数で対応できるかが大切です。 保守性をあげる工夫はいろいろありま …

no image

arquillianでの外部ライブラリ使用

現状、実務ではDBのテストでは基本的にarquillianを使っています。 arquillianとにかく、重いですね~。 まあglassfishを動かしているので仕方ないかもしれませんが、簡単なテスト …