normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Gradle でスクレイピングをしてみる

普段は Maven を使ってしまっているが、結構前から Gradle が流行っていることは Java 界隈の方々には既知の事実であろう。人が作ったスクリプトでのビルドは利用する機会があるが、あんまり自分でスクリプトを弄らなかったのでちょっと息抜きに。

Gradle の入門記事自体は Gradle入門 を見れば大概乗ってるので特に問題ないと思う。ご存じの方も多いと思うが、おおざっぱに言うと「Gradle は Groovy で書かれた設定ファイルで動く」という代物なので、Groovy を学ぶことが重要になる(そういう Groovy もスクリプト言語の皮をかぶった Java だけど)。

スクリプトを動かす

最近、マイクロソフトのイベントであるFEST2015 のセッション情報一覧が表示されたので、こちらから興味深いセッションをスクレイピングするスクリプトを以下に記載した。

  • build.gradle
import org.jsoup.Jsoup;

buildscript {
	repositories { mavenCentral() }
	dependencies { classpath 'org.jsoup:jsoup:1.8.3' }
}

task festSession{
	description ="extract a fest session from html";
	doLast{
		def document = Jsoup.connect("https://www.microsoft.com/ja-jp/events/fest/2015/session.aspx").get()
		def e = document.select("div.Day3x div.boSess").get(0).select("div.sessAbstBox dl").get(0);
		println e.text()
	}
}

buildscript タスクにてスクレイピングに利用するライブラリである jsoup への依存関係を解決している。festSession タスク内では jsoup を利用して興味深いセッションへのスクレイピングを実施した。実行結果は以下になる(見やすさのために改行を入れている)が、実に興味深いセッションなので最前列で見たい。

>gradle festSession
:festSession
12:30 - 13:15[ DEV-301 ] Microsoft Love OSS!! はじめての Java Web アプリケーション開発 on Azure 寺田 佳央
 日本マイクロソフト株式会社 デベロッパーエバンジェリズム統括本部 シニア テクニカル エバンジェリスト Microsoft Azure
 は世界中のリージョンに存在するインスタンスの内、20 %以上が Linux が稼働しています。そして Linux 上で、PHP、Ruby、
 Java などのプログラミング言語で構築された Web アプリケーションを難なく動作させることができます。本セッションでは、
 Microsoft Azure の Linux 環境で、Java の Web アプリケーションを構築するための手順や便利な機能、さらに、Azure 
 で提供するさまざまなサービスを分かりやすくご紹介します。

BUILD SUCCESSFUL

Total time: 4.528 secs