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

Annnotationについて その2

Java(JavaEE)をやりだして半年ぐらいたつんですが、個人的に鬼門だとおもっていたのが下記内容です。 MVCではないコンポーネントの考え方 クラスを使ったジェネリクスの使い方(型パラメータなど) …

no image

Streamについて

Java8で導入されたStreamですが、名前はしっていたものの、使い方がわからず放置していました。 これを機に調べたのですが、コレクションフレームワークの拡張のようですね。 特徴としては以下のような …

no image

Annotationについて

Javaのアノテーションですが、よく出てくる割には場面場面でよくでてくるんですけど、根本的にはよく理解できていませんでした。 今もあまりわかっていませんが・・・やはり理解するためには自分で作成するのが …

no image

スコープアノテーションとCDIについて

JavaEEで個人的に鬼門がCDIとスコープだと思っています。 ここが少しずつ分かりかけてきたんでメモします。 まずJavaEEでは変数の生存期間をアノテーションで定義します。 これがなかなか分かりに …

no image

glassfishへのデプロイ

いつもJavaEE環境のローカル開発ではNetbeansで動かしてますんで、デプロイに関してglassfishのことをほとんど知らなくても動かせます。 開発や本番環境化では当然そういうわけには行かない …