- 2009-01-04 (日) 20:13
- Keiba | feedparser | python | twitter
17年近く競馬をやっていた私が、結婚してからいうもの、すっかり馬券を買わなくなっていたのですが、去年の年末に東京大賞典だけ購入しました。結果は駄目でしたが、やはり競馬は面白いね!ということで、いつも予想時に参考にしているラジオNIKKEI競馬実況webのニュースをTwitterに配信するBOTを作りました。
http://twitter.com/keiba_news
配信は1時間に1回にしています(レンタルサーバのcronジョブの最短間隔が1時間なので)。例によってコードを晒します。このコードはPython2.4と2.5で動作確認をしています。また、RSSのパースにfeedparserを、Twitter投稿にpython-twitter(依存関係でsimplejsonも必要)を使用しています。
# coding: utf-8
from time import *
import email.Utils
import feedparser
from twitter import Api as TwitterApi
def file_open(f):
r = open(f,'r')
latest_date = r.readline()
r.close()
return latest_date
def parse_feed(u):
data = feedparser.parse(u)
feed = []
for entry in data.entries:
feed.append([entry.date, entry.title, entry.link])
feed.reverse()
return feed
def main(feed, latest_date):
for i in feed:
entry_date, entry_title, entry_link = i[0], i[1], i[2]
entry_date = localtime(mktime(email.Utils.parsedate(entry_date)) + 32400)
entry_date = strftime('%Y/%m/%d %H:%M',entry_date)
if latest_date < entry_date:
api = TwitterApi(TWITTER_USERNAME, TWITTER_PASSWORD)
post = u"%s %s %s" % (entry_date, entry_title, entry_link)
api.PostUpdate(post)
latest_date = entry_date
return latest_date
def file_close(f, l):
w = open(f, 'w')
w.write(str(l))
w.close()
if __name__ == '__main__':
TWITTER_USERNAME = 'TWITTER_ACCOUNT'
TWITTER_PASSWORD = 'PASSWORD'
FILE = 'radionikkei_status.txt'
URL = 'http://keiba.radionikkei.jp/keiba/rss2/news/'
latest_date = file_open(FILE)
feed = parse_feed(URL)
latest_date = main(feed, latest_date)
file_close(FILE, latest_date)
なんか無理矢理、関数組んじゃったりしてますが、とりあえず動いてます><
というわけで、ついったったーで競馬好きな方がいらっしゃいましたらFollowしてやって下さい。
参考サイト
- Newer: がんばれ! アドミンくん の新作情報を知らせるTwitterBotを作った
- Older: 明けましておめでとうございます
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://aoshiman.net/weblog/2009/01/04/radinikkei-twitterbot/trackback/
- Listed below are links to weblogs that reference
- ラジオNIKKEI競馬実況webのNEWSを配信するTwitterBotを作りました from “南船北馬”
