2005
May
5th
goo、全国約140カ所の天気情報や地震情報をRSSで配信にあるとおり、gooは昨年末から全国各地の天気予報のRSSを配信しています。でも上記の記事にもあるように、このRSSの更新は1日3回で「6時30分・11時30分・17時30分」となっています。なので、天気予報の細かい変化をというよりは、気象庁の発表した予報の一部を軽いデータとして配信していると捉えた方が良いようです。で、その程度のデータで、随時更新だと特に使いみちがなあと思っていたのですが、ウィルコムの定額にしてるとメールも定額なので、RSSの更新の度に電話にメールで送るようにしようかなと思いました。
gooの天気予報のRSSをどうこうするというのは他にいくらでもあるのですが、極簡単にできるものなので書いちゃいました。
下記のソースをgootenkirss.pyとして、第1引数にメールアドレス、第2引数に地域コードを指定して、
あとはこれを定期的に実行するようにcron様にお願い。
何時にどこそこの天気予報をどこそこのメールアドレスに送ってちょという人はsetomits@gmail.comまでどうぞ。
gooの天気予報のRSSをどうこうするというのは他にいくらでもあるのですが、極簡単にできるものなので書いちゃいました。
下記のソースをgootenkirss.pyとして、第1引数にメールアドレス、第2引数に地域コードを指定して、
[setomits@vaio python]$ ./gootenkirss.py foo@example.com 4410と実行すると、
Subject: 東京(東京)の天気 From: tenki@matatabi.homeip.net 明日(5/5)の天気「晴れ」というメールが届くわけです。地域コードてのは、gooの天気予報では例えば東京ならURL(http://weather.goo.ne.jp/area/4410.html)の中の4410が、例えば大阪ならURL(http://weather.goo.ne.jp/area/6200.html)の中の6200がそれにあたります。
あとはこれを定期的に実行するようにcron様にお願い。
何時にどこそこの天気予報をどこそこのメールアドレスに送ってちょという人はsetomits@gmail.comまでどうぞ。
ということでソースはこんな感じ。
#!/usr/bin/env python # -*- coding: euc-jp -*- import sys, smtplib, feedparser addr = sys.argv[1] area = sys.argv[2] url = "http://weather.goo.ne.jp/area/%s.rdf" % area data = feedparser.parse(url) title = data.feed.title.split()[0] content = data.entries[0].title.split()[0] msg = "From: tenki@matatabi.homeip.net\r\n" msg += "To: %s\r\n" % addr msg += "Subject: %s\r\n\r\n" % title.encode("iso-2022-jp") msg += "%s" % content.encode("iso-2022-jp") server = smtplib.SMTP("localhost") server.sendmail("tenki@matatabi.homeip.net", addr, msg) server.quit()
Posted by setomits at 01:40 |
Comments: 3
とのこと。
プログラムの実行は7時・12時・18時とかにしといたほうが良いかな。
今日(5/7)の天気「雨
という結果になります.
要は,末尾の" - goo天気"のみを切りたいんであれば,
content = data.entries[0].title[:-9]
とかに変更してみるとか.
( ... ソースを書き直してテストをして ... )
なるほど。split()しちゃってると、「くもり のち 晴れ」なんかも分割しちゃって、最初のくもりだけしかこないとかってなってたわけですね。
ありがとうございます。
ほんとはreplaceにしようかなとも思ったのですが、
と書くとあまりにも生々しいというか、よろしくないかなと思ったのでした。
でも確かに
なら生々しさはないですね ;-)