追記:2021年3月1日
ホームページ更新後、プログラムを変更した。
先に作成したものは天気図の更新時間に合わせて、静止画像のURLを変更する仕様だったが、気象協会サイドが更新時間を変えると404エラーになる恐れがある。そこで天気図が掲載されているサイトから、天気画像のURLをダイレクトにスクレイピングすることにした。
PHPにも、Pythonと同じようにWebスクレイプ用のphpQueryというライブラリがあり、そのモジュールを使うことで簡単にURLを取得できることがわかった。
ダウンロードページから最新の「phpQuery-…-onefile.zip」をダウンロード。phpQuery-onefile.phpファイルをプログラムと同じDirectoryに入れ、プログラムの頭で読み込めばOK
Google Code Archive: phpquery
作成したプログラムは以下の通り:
<?php
// phpQueryの読み込み
require_once("phpQuery-onefile.php");
// 取得したいwebサイトを読み込み
// tenkizu ///////////////////////////////////////////////////////////
$html = file_get_contents("https://tenki.jp/guide/chart/");
// 取得したい情報を記述 ->idの属性指定->imgタグ
$tenkizu = phpQuery::newDocument($html)->find("#chart_map")->find("img");
$url=explode(" ",$tenkizu);
//print_r($url);
echo $url[0].' '.$url[1].' '.$url[3].' width="90%" height="90%">';
// reference url: https://qiita.com/zaburo/items/465ca691aebad2b5691e
?>
わずか5行でURLリンクのHTMLをプリントすることができた。
作成プログラム:
・tenkizu-scrape.php : 天気図用
・satellite-scrape.php : 気象衛星写真用
オリジナル:2012年2月28日
今月、気象庁がホームページをリニューアルした。昨年気象庁は予算が厳しい中で、HPに広告を載せる仕様にして不具合が発生し問題となった。その後あらためて改定作業を進めていたようだが、今回のリニューアルではCGIから今風のJavaScriptsを多用した動的サイトになった。
その結果、気象庁の天気図などの画像を引用させてもらっている当サイトも修正せざるをえなくなった。しかしJavaScriptsで描画した天気図を引用する手段を知らないので、とりあえず日本気象協会の天気画像を引用するように更新した。またこれまでPythonで画像を抽出していたプログラムを、PHPにしてFunction.phpとして埋め込むようにした。
作成プログラム:
・tenkizu-tenkijp.php
3時間〜6時間毎に更新される天気図の取り込みプログラム
・satelite.php
2時間毎に更新されるひまわり画像の取り込みプログラム
今回使ったTipsの参考URL:
<?php
// 現在の日時
$date_now = date('Y-m-d'); // 年月日
$time_now = date('H:i:s'); // 時分秒
// 指定した日時
$date_target = '2017-06-02';
$time_target = '19:30:10';
// 日付を比較
if (strtotime($date_target) > strtotime($date_now)) {
echo '指定した日付は 未来 です。';
} else if(strtotime($date_target) < strtotime($date_now)) {
echo '指定した日付は 過去 です。';
} else {
echo '指定した日付は 今日 です。';
}
// 時刻を比較
if (strtotime($time_target) > strtotime($time_now)) {
echo '指定した時刻は 未来 です。';
} else if(strtotime($time_target) < strtotime($time_now)) {
echo '指定した時刻は 過去 です。';
} else {
echo '指定した時刻は 現在 です。';
}
?>
コメント