Googleの検索順位を取得

(後日追記)
この投稿を作成した当時は下記方法で取得できましたが、
久しぶりに試してみると表示ができなくなってました。
有効ではなくなってしまったので取り急ぎ記載しておきます。

 

以前Googleの検索結果を取得した話の続き。

当時はGoogle APIを利用したのであるが、
そうではなく通常のGoogle検索をした時と同様の
検索結果や検索順位を取得してみたいと思う。

 

いまの仕事ではあまり多くないが、
特定のWebサイトの検索順位を日別で管理する場合には
役に立つのではないかと考えている。

検索順位チェックツールとして有名なのはGRCだが、
Windowsアプリではなく、やはりPHPとかで作成したWebプログラムを
CRONで定期実行をしてデータをDBに格納するほうが拡張性がある。

 

と言う訳で、まずはGoogleで検索。
とりあえずキーワードは何でも良いのだが一旦「yahoo」とする。

https://www.google.co.jp/#q=yahoo

検索結果のページのHTMLを表示させてみても
肝心の検索結果部分のテキストはHTMLに含まれていない。

なので、単純にこの検索結果ページのHTMLをスクレイピングしても何の意味もない。

 

こういった場合、別で受け取っているJSONデータが表示されている事は
素人の私でも知識としては一応知っている。

 

ただ、JSONだけをどうやって受け取るかが良く分からなかったのだが、
何かヒントがあるかとPingdom Toolsで検索結果のURLを洗ってみた。

Pingdom Toolsの結果画面はこちら

PingdomToolsの結果画面

 

すると取得に時間がかかっているURLがあるのでそれを叩いてみると
検索結果部分のJSONが取得できた。

下記はそのURLからJSONを取得して表示するだけのPHP。
http://516.jp/json_test_yahoo/index.php

 

TeraPadの80桁折り返しで770行目ぐらいから検索結果部分がある。

■TeraPadで表示させたJSON
TeraPadで表示したJSON

 

■検索結果画面
検索結果の画面

 

次はJSONデータをパースして、
まずは1位から10位のURL部分だけを取り出せるようにしたい。

 

続きをやりたいところだが、
他にやる事もあるので一旦ここまで。

また来週以降でやってみる。