altplusaltplusB3Sスタッフの技術紹介サイトです。中規模・小規模のWebサイト、WebシステムではAPIは中々用意されていないというが現状ではないでしょうか。そのような、APIが用意されていないWebサイトから、なんとかデータを引っこ抜いてくる何かがないものかと考えました。単純にURLを指定して「表示されたWebページにさえ欲しい情報があれば」HTMLを引っこ抜いてきて自力のルーチンで解析するのも勿論1つの手段です。そのような動きは、Webクローラー(検索エンジンなどで採用されているものです)と同じような動きになると思いますがそれを手軽に実現できる「Goutte」と「PHPQuery」という2つのWebスクレイピングライブラリがあることを知りました。※Webスクレイピングとは、検索エンジンなどで使用しているWebクローラーのように、Webサイトから情報を抽出する仕組みのことです。PHP5.3でGoutteを使うPHP5.3でGoutteを使う場合、Goutteのバージョンが1.x系のものを使えば一応は遊べます。json形式のものをインストールしたり、色々使用方法はあるのですが、今回はパッケージがまとまっているphar形式のものを使います。1.x.最新のGoutteを使うにはPHP5.5以上、Guzzle(HTTPクライアントライブラリ)のVer6以上が必要です。このサイトのサーバーはPHP5.2系を採用しているので、残念ながら当サーバー上で試験することは出来ません。別のサーバー(PHP5.3系実装)でGoutteを用いたWebスクレイピングをテストすることとしました。最新のものは色々機能が追加されていたり不具合が修正されていたりするそうです。download>http://get.sensiolabs.org/goutte-v1.0.7.phar↑これがGoutte1.x系のものです。これを使えばPHP5.3でもGoutteが利用できます。実装サンプルせっかくなので、オリックスの成績表をスクレイピングして見ようと思います。{$jx++;}});取得して配列に入れ込むだけなら、なんとたったの15行で済みます(コメント除く)。元ページ:http://baseball.yahoo.co.jp/npb/teams/11/memberlist?type=b元ページの表を取得・解析し、独自のグリッドを3つ追加しました。残り何試合今のペースで出ればよいか)本当は、動作しているものをサンプルとして用意したかったのですが、このサーバーでは用意できないのでローカルにあるサーバーで実装しました。他のサイトとも連動して色々野球関係の物を作るのもよし、もっと実用的なAPIに変わる物を作るのも良し、ですね。微妙です最近、PHPバージョンアップに向けて水面下で動いている僕です。...javascriptで子ウインドウから親ウインドウを更新する(ポップアップ、iframe対応)javascriptは便利ですが、気をつけないとすぐエラーが発生する気がします。個人的にはLaravelのFormRequest機能がいい感じです。...Laravel5.2でvender(コアファイル)を分離するLaravelは機能が多すぎて把握しきれないです。...PHPでの未入力チェック方法(多重配列対応)PHPでの未入力(空文字)チェックは0とスペースの判定に困ります。...ディスカッションコメント一覧まだ、コメントがありませんコメントを残すコメントをキャンセルこの記事のトラックバックURL新着記事[MySQL]ウインドウ関数お久しぶりでございます。...自作HPが突然見れなくなってしまった!!こんにちは。...Googleドキュメントの「写真のファイルをテキストに変換する」をやってみた。お久し振りです!ぽんてです。...Ajaxのデバッグを簡単に実行したい!!ブログの更新を頑張っています。~プッシュ通知編~はちです。