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

GlassFish&Junitの不具合

JavaEE(JSF+JavaBean+EJB+JTA)でアプリを製作しているのですが、EJBの部分のjunitができないことが判明しました。 正確に言うとラムダ式を使うと不具合がでます。原因としては …

no image

CentOS上にglassfish構築+arquillianテスト

JavaEEの開発でアプリケーションサーバーとしてglassfishを使っています。 今回、CentOS(ver6.6)に立てる機会があったので、そのネタを共有したいと思います。 Contents1 …

no image

BeanUtilsについて

以前このエントリーでも紹介しましたが、BeanUtils、思った以上に使い方が幅広いです。 Contents1 クラスからクラスに2 マップからクラスに3 クラスからマップ4 特定の値の取り出し5 リ …

no image

クラスパスの通し方

今回はNetbeansでなく、IDEを使わずにJavaを使う場合の記事です。 Javaで開発している人の99%はIDEで開発をしていると思うのですが、サーバー上で一時的テストをしないといけないような場 …

no image

try-with-resourceの使い方

先日ファイル入出力の処理をいろいろと書いていたところ、例外処理について社長からアドバイスをいただきました。 Contents1 ファイルの入出力について2 try-with-resource3 参考リ …