

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>“南船北馬” &#187; Keiba</title>
	<atom:link href="http://aoshiman.net/weblog/category/keiba/feed/" rel="self" type="application/rss+xml" />
	<link>http://aoshiman.net/weblog</link>
	<description>不定期更新且つ、最新情報に対して常に周回遅れ気味に追っかけているブログです</description>
	<lastBuildDate>Tue, 20 Oct 2009 11:07:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ラジオNIKKEI競馬実況webのNEWSを配信するTwitterBotを作りました</title>
		<link>http://aoshiman.net/weblog/2009/01/04/radinikkei-twitterbot/</link>
		<comments>http://aoshiman.net/weblog/2009/01/04/radinikkei-twitterbot/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 11:13:08 +0000</pubDate>
		<dc:creator>aoshiman</dc:creator>
				<category><![CDATA[Keiba]]></category>
		<category><![CDATA[feedparser]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://aoshiman.net/weblog/?p=131</guid>
		<description><![CDATA[				17年近く競馬をやっていた私が、結婚してからいうもの、すっかり馬券を買わなくなっていたのですが、去年の年末に東京大賞典だけ購入しました。結果は駄目でしたが、やはり競馬は面白いね！ということで、いつも予想時に参考にしているラジオNIKKEI競馬実況webのニュースをTwitterに配信するBOTを作りました。
				
				http://twitter.com/keiba_news
				
				配信は１時間に１回にしています（レンタルサーバのcronジョブの最短間隔が１時間なので）。例によってコードを晒します。このコードは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:
 [...]]]></description>
			<content:encoded><![CDATA[				<p>17年近く競馬をやっていた私が、結婚してからいうもの、すっかり馬券を買わなくなっていたのですが、去年の年末に<a href="http://www.tokyocitykeiba.com/01/2008/index.php?Date=20081229">東京大賞典</a>だけ購入しました。結果は駄目でしたが、やはり競馬は面白いね！ということで、いつも予想時に参考にしている<a href="http://keiba.radionikkei.jp/">ラジオNIKKEI競馬実況web</a>のニュースをTwitterに配信するBOTを作りました。<br />
				<span id="more-131"></span><br />
				<a href="http://twitter.com/keiba_news">http://twitter.com/keiba_news</a><br />
				<br />
				配信は１時間に１回にしています（レンタルサーバのcronジョブの最短間隔が１時間なので）。例によってコードを晒します。このコードはPython2.4と2.5で動作確認をしています。また、RSSのパースにfeedparserを、Twitter投稿にpython-twitter（依存関係でsimplejsonも必要）を使用しています。</p>
				<pre class="brush: python;">
# 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 &lt; entry_date:
            api = TwitterApi(TWITTER_USERNAME, TWITTER_PASSWORD)
            post = u&quot;%s %s %s&quot; % (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)
</pre>
				<p>なんか無理矢理、関数組んじゃったりしてますが、とりあえず動いてます＞＜<br />
				というわけで、ついったったーで競馬好きな方がいらっしゃいましたらFollowしてやって下さい。</p>
				<h2>参考サイト</h2>
				<ul>
				<li><a href="http://d.hatena.ne.jp/wakizaka/20080208/1202443369">Absolute Territory：twitterボット「ZAWATTER」を作ったよー＼(＾o＾)／</a></li>
				<li><a href="http://aoshiman.net/weblog/2008/09/30/google_search_history/">南船北馬：Pythonで１日のGoogle検索履歴の一覧を作成してGmailから送信する</li>
				</ul>
]]></content:encoded>
			<wfw:commentRss>http://aoshiman.net/weblog/2009/01/04/radinikkei-twitterbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
