skillup

技術ブログ

Java

Javaでのスクレイピング

投稿日:2016年1月11日 更新日:

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

スクレイピングの手法

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

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

に分かれます。

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

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

正規表現

メリット

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

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

デメリット

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

HTMLパーサー

メリット

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

デメリット

ライブラリの学習コスト

Javaでのスクレイピング

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

jsoup 

http://jsoup.org/

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

参考リンク

jsoup使い方メモ

jsoupでHTMLをパースする

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

https://github.com/umanari145/superScraping

 

-Java
-, ,

執筆者:


comment

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

関連記事

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …

no image

JPAでの算術関数の型&mavenコンパイルプラグイン

本日も小ネタなので2つ同時に扱います。 Contents1 JPAの算術関数2 mavenのコンパイル JPAの算術関数 JPAでは以前、MySQLなどと同じように算術関数を使えると書きました。 参考 …

no image

CentOS上にglassfish構築+arquillianテスト

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

no image

CDIの循環依存エラー&JSFでの条件分岐について

本日は小ネタなので2つのネタをまとめます。 Contents1 CDI循環依存エラー2 JSFでの条件分岐 CDI循環依存エラー 半年近くやってますが、いまだにJavaEEでエラーがでてくると焦ります …

no image

GlassFish&Junitの不具合

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

アーカイブ