端末でサーバにつなぐコマンド
iEPGの取得
あとは時刻指定で自動でプログラムを走らせて、前後1週間のiEPG情報を保持しよっと。
結局crontabのコマンド勉強してないからやらないとな…
#/user/local/bin/python # -*- coding: utf-8 -*- import urllib import urllib2 import httplib import re import codecs import sys import datetime from BeautifulSoup import BeautifulSoup ##download program## programday = datetime.date.today() + datetime.timedelta(1) programday = re.sub("-", "", str(programday)) site = 'http://hoge.ne.jp/chart/hoge.action?head='+programday+'0000' urllib.urlretrieve(site,'Data/'+str(programday)+'.html') ##analysis program## data = 'Data/'+str(programday)+'.html' f= open(data) html = f.read() f.close() soup = BeautifulSoup(html) ##download iepg## for i in range(len(soup('a', title='iEPG'))): print soup('a', title='iEPG')[i]['href'] iEPG = soup('a', title='iEPG')[i]['href'] day = datetime.date.today() urllib.urlretrieve('http://hoge.ne.jp'+iEPG,'iEPG/iepg'+str(day)+'-'+str(i)+'.tvpi') ##open iepg## iepgData = {} pattern = re.compile("(.+?): (.+)") ##analysis iepg## for line in open('iEPG/iepg'+str(day)+'-'+str(i)+'.tvpi',"r"): m = pattern.search(line) if m: iepgData[m.group(1)] = unicode(m.group(2),"shift_jis").encode("utf-8") print iepgData[m.group(1)] else: content = unicode(line,"shift_jis").encode("utf-8") for k in iepgData.keys(): print k+":"+iepgData[k] print content
結果のサンプルは
/iepg.tvpi?id=101024200910152330 application/x-tv-program-info; charset=shift_jis 1 NHK総合 2009 10 15 23:30 00:10 きょうのニュース&スポーツ ▽時論公論・どうなる 来年度の予算編成 69 1 end:00:10 version:1 program-title:きょうのニュース&スポーツ ▽時論公論・どうなる 来年度の予算編成 month:10 start:23:30 station:NHK総合 year:2009 date:15 genre:69 subgenre:1 Content-type:application/x-tv-program-info; charset=shift_jis 藤井彩子,NHK解説委員…下境博