Jリーグ日程取得する勝手API
Jリーグ公式サイトをスクレイピングして、Jリーグの日程を取得する勝手WebAPIを作ってみた。
本体は、PHPで作成。
最初、取得したHTMLをHTML_Parserを使用して、一旦xhtmlに変換してから修理してたのだが、HTMLのサイズがでかいので、ここでかなり時間を食っていた。
しょうがないので、HTMLを直接DOMdocumentのparseHTMLで読ませたら、なぜか文字化け。あれこれと調べてたら、どうもpaseHTMLは、HTML内のMETAデータを判断してエンコードしてるらしい。
取得したHTMLはいきなりBODYから始まってたんで、HEADタグすらない。しょうがないので、強引にHEADタグを挿入してみてから、parseHTMLしたらうまくいった。
API仕様
APIの仕様はこんな感じ。REST形式です。
リクエストURL(暫定): http://labs.s-koichi.info/jleague/jleagueAPI.php
リクエストパラメータ:
| パラメータ | 値 | 説明 |
|---|---|---|
| year(必須) | string | 取得する予定表の年です。 |
| league(必須) | string | リーグの種類:
|
| _render | string: json(デフォルト) | 取得するデータ形式:
|
| _callback | string | コールバック関数名です。データ形式がJSONのときに指定すると、JSONP形式で返します。 |
リクエストURLは暫定です。変わる可能性があります。というか、変わる予定です。
APIソースコード
さっそく、ソースを公開。こちらがAPI本体のクラス。
JleagueAPI.class.php
で、このクラスを使ってる、APIの呼び出し先のPHPコードがこちら。
JleagueAPI.php
APIサンプル
このAPIの使い道として想定しているのは、ブログパーツを作ったり、Googleガジェットにしてみたりってのを考えています。
作っただけでは、なんなのでサンプルを作ってみました。APIをAjaxで呼び出して結果を表示するものです。今回も、JQueryを使用しています。
まずは、表示するHTMLのソース。
jleaguesearch.html
JQueryを使ったAjaxのコードです。
jleaguesearch.js
サンプルは以下のリンクから見れます。
今回、掲載したソース一式を以下からダウンロードできます。なお、PEARのCache_LiteとXML_Serializerを使用しています。PHP5以上で動作します。
ソース一式: [jleagueAPI001.zip]

