Yahoo!ローカルサーチAPIを使用して特定業種の連絡先一覧CSVを生成する方法です。
たとえば大阪府内のトルコ料理店一覧を取得するとこのような結果になります。
ローカルサーチAPIでは検索結果がXML(かJSON)で得られるので、それをパースしてカンマ区切りで出力すればちょっとしたデータベースができあがります。
業種コードについてはYahoo! Open Local Platform の業種コード一覧を参考にしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php $id = 'アプリケーションID'; $area = 27; //大阪府 /* 01が北海道、47が沖縄なので47回ループさせれば日本全国のデータが取得できるが、相当に重い処理なのでローカル端末で動かしたほうがいいかもしれない while($area <= 47){*/ /* if($area<10){ $area = "0{$area}"; } */ $ct = '0105010'; //トルコ料理 $start = '1'; $url = 'http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid='.$id.'&ac='.$area.'&gc='.$ct.'&results=100&start='.$start.'&detail=full'; $xml = simplexml_load_file($url); $total = $xml->ResultInfo->Total; //結果の総数が取得できる $loop = (int)($total/100); //取得できる件数は最大100件なので、総数/100回繰り返す必要がある $i = 0; while($i <= $loop){ $start = 100*$i+1; $url = 'http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid='.$id.'&ac='.$area.'&gc='.$ct.'&results=200&start='.$start.'&detail=full'; $xml = simplexml_load_file($url); foreach($xml->Feature as $item){ echo $item->Name. ',' . $item->Property->Yomi . ',' . $item->Property->Tel1 . ',' . $item->Property->Address . ',' . $item->Property->Station->Railway . $item->Property->Station->Name . '駅,'. $item->Property->Detail->OfficialPcUrl1; echo '<br />'; } $i++; } // ループさせない場合は不要 // $area++; //} ?> |
このようにして取得できたCSVをCSV Importerを使用してWordPressに記事として投稿すれば、ちょっとしたポータルサイトのできあがりです。
ADs
下記サイトから、Yahoo!ローカルサーチAPIの施設一覧CSVを出力できますので、
コメントしておきます。
https://opendata-web.site/loco/