« MTCalendarを月曜始まりにするプラグインのMT4対応 | メイン | 「佐々木夫妻の仁義なき戦い」 第6話 »

Topコンピューター > Jリーグ日程取得する勝手API
2008年02月22日

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リーグの種類:
  • j1: J1リーグ
  • j1-1: J1 1stステージ
  • j1-2: J1 2ndステージ
  • j2: J2リーグ
  • ync: ヤマザキナビスコカップ
_renderstring: json(デフォルト)取得するデータ形式:
  • json: JSON(P)形式
  • xml: XML形式
_callbackstringコールバック関数名です。データ形式が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]

人気ブログランキング ←押すと一票入ります。

関連エントリー

つまらん日記内の関連するエントリー:3件

トラックバックURL

このエントリーのトラックバックURL:

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • エントリーとあまりにも無関係な記事のトラックバック、または管理人が不適切と判断した場合は、削除させていただきます。
コメントする
  • 電子メールアドレスは必須ですが、表示されません
  • コメント蘭内でタグが使えます。
  • コメント欄内の改行はそのまま改行となります
  • コメント欄には、少なくとも1文字以上の日本語全角文字を入力してください

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)