HTMLパーサー Jsoup

JavaでのHTMLパーサーは色々と種類があります。今回、AndroidアプリでHTMLをパースする必要があり

一番お手頃で使い勝手の良い、Jsoupを使ってみました。簡単な使用方法をまとめておきます。

環境はAndroidStuid利用での前提とします。

セットアップ

build.gradleファイルProject用とModuke用があります。Module用を修正します。

dependenciesにJsoupの依存関係を追加します。同期をとります。

apply plugin: 'com.android.application'  
android {     
     compileSdkVersion 21     
     buildToolsVersion "21.1.2"      
     defaultConfig {         
          applicationId "com.example.wataru.myapplication"        
          minSdkVersion 19        
          targetSdkVersion 21         
          versionCode 1        
          versionName "1.0"     }    

     buildTypes {       
           release {             
                  minifyEnabled false             
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         
          }     

     }  
     dependencies {     
          compile fileTree(dir: 'libs', include: ['*.jar'])     
          compile 'com.android.support:appcompat-v7:21.0.3'     
          compile 'org.jsoup:jsoup:1.7.3' 
     } 
}

使ってみる

サンプルとしてあるHTMLページの画像(IMGタグ)の画像ファイル(src)属性の内容をすべて出力する処理は以下のようになります。

Document doc = Jsoup.connect(baseurl).get();      
Elements imgs = doc.select("img");                   
for(Element elm : imgs ){              
    Log.d("SRC", elm.attr("src"));      
}

使い勝手がよく効率よくパースする処理が書けそうです。他にも便利なメソッドがありそうですので詳細はJsoupのサイト http://jsoup.org/ へ