僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
気象庁のWebサイトが変わり、以前運用していたシェルスクリプトでは、 天気予報をメールすることができなくなっていた。
#!/bin/sh URL='https://www.jma.go.jp/jp/yoho/331.html' WCOLS=24 DIR=$DIR TITLE="`echo 天気予報|nkf -w`" wget -q -O - $URL | \ sed -ne '/<caption/, /<div id="explain">/'p | \ sed -f ${DIR}half_all.sed | \ w3m -dump -T text/html -cols $WCOLS | \ sed -f ${DIR}form.sed | \ sed -f ${DIR}ctrl_nr.sed | \ nkf -w | \ s-nail -A $MAILSERVER -s $TITLE $MAIL_ADDR
JSONで取得できる話を聞いて、少し試す。
エリアのサイトを見て、適当なURLをアクセスする。
見るべきところは
27000.jsonらしい。
wgetとpython3スクリプトとs-nailで処理することとする。
データの解析出力はpython3にやらせる。
適当に検索したところ、リストとディクショナリと解釈するらしい。
dumpsにかけると、全部文字列になってしまう、らしい。
手を焼いたことのひとつに、日本語のエンコードがあった。
あれこれ試して、複数の{hoge: [foo, bar], fuga:[fuzz, buzz]}
を含む形で切り出すと、\hogehoge が交じるらしい。
消すなら最終データまで指定してやるか、さもなくばjson.dumpsに
ensure_ascii=Falseを添えてやればいいらしい。
このあたり、やったのは昨日だったせいか、ほとんど記憶
してなかったり。
From: みおから $SENDER_MAIL_ADDR To: $MY_MAIL_ADDR Subject: 2月27日の天気予報 Date: Sat, 27 Feb 2021 10:03:37 +0900 User-Agent: s-nail v14.9.11 今日の天気は 晴れ 時々 くもり 今日の風 北東の風 やや強く 海上 では 北東の風 強く 今朝の最低気温は 11 ℃,, 日中の最高気温は 11 ℃ 雨の降る確率: 6時-12時は 0 %です 雨の降る確率: 12時-18時は 0 %です 雨の降る確率: 18時-24時は 0 %です
もう一つ。スクリプトをgithubにあげるために、個人情報を
環境変数にして、別ファイルに逃がす方法。
どうやら ~/.bash_profileに書いておいて(不正侵入で狙われる可能性を考えると、
これも良くなさそう)、
スクリプトを #/usr/bin/bash -l にすればいい、らしい、さしあたり。
あとcron。$HOMEしか見てくれない。
Working Directryは指定できるが、python3が読み込むべきファイル
は、さしあたり$HOMEに置くしかなさそう。
wget に --quiet を付けてないと、標準出力をいちいちメールしてくれる。
bashのキーバインドCtrl-a(左端へ)、Ctrl-e(右端へ)は覚えていたが、 打鍵の面倒な環境では、Ctrl-i(補完)、Alt-b(単語単位で左)、Alt-f(同、右)も。
任意のキーを、キーボードを見ずに叩けるPC+キーボードは、やはり楽。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。