[php][javascript]東京ウォーカープラスのイベント情報を抜き出す例

徒然草2.0

東京ウォーカープラスのイベント情報をPHPで抜き出すサンプルコードを書いたので…何かに使えると思ったので書いておきます。色々と試行錯誤しましたが…JSONデータがそのまま得られるならそれそのまま使うのが良さげです。東京ウォーカープラスのイベン情報は配列の中にオブジェクト(json)でscriptタグ内に収められているので…それをjson_decodeしてあげれば目的の結果を得ることができる。毎回これを実行すると東京ウォーカープラスのサイトにアクセスして負荷が増えるため、2回め以降はファイルへ書き込んでキャッシュ化する処理(2~3行目をコメントアウト)を実行するといいかと。

$data = file_get_contents("https://www.walkerplus.com/event_list/");
// file_put_contents("eventOutput.txt", $data);
// $html = file_get_contents("eventOutput.txt");
$match = [];
preg_match('/<script type="application\/ld\+json">([\s\S]*?)<\/script>/',
$html, $match);
$str = $match[1];
$ary = json_decode($str, true);
var_dump($ary);

キャッシュ後のファイルをjs(node)でやるとこうなる…

const fs = require('fs');
const jsonObject = JSON.parse(fs.readFileSync('./eventOutput.txt', 'utf8'));
jsonObject.forEach((obj) => {
    console.log(obj);
});

phpのjson_decode()をあまり信用していないのでnodeのほうがましな結果になるのかな?と思いましたが…結果としてどちらでもできました。

コメント

タイトルとURLをコピーしました