前回の続き 時間指定をして、最新ものが来たらわかるようにした
どうもlinusです。
今回は前回やったやつの続きということで
例のプログラムを指定の時間で起動できるようにしました。
使った技術は時間取得のやつと他のプログラムを起動するものとメモ帳に書き込むというものです。
まず最初に時間指定ですが10分おきに起動してもらうためにこうしました。
# -*- coding: utf-8 -*- import os import datetime import locale #時間取得 now = datetime.datetime.now() dd=11 while True: now = datetime.datetime.now() pri = now.minute if not pri == dd: if pri == 0 or pri==10 or pri == 20 or pri == 30 or pri == 40 or pri == 50 : os.system('python rss.py') dd = pri
こういうプログラムを作った
このnow = datetime.datetime.now() で今の時間の情報がわかり
now.minuteとやれば今の分の情報を抜き取れるのでそっからはifで起動するもので
そっからは10分おきにやりたいのであのようなif文にあと気をつけなければいけないのは1分間に何回もこのループを回っているので同じminuteでは起動できないように
if not pri == dd:で10分のあとは10以外の奴でしか起動できないようにしました。os.systemのカッコの中には自分がターミナルでやりたいコマンドをできればできます。
そして肝心の最新のものはどうやるかというと
# coding: UTF-8 import urllib import urllib2 import requests from bs4 import BeautifulSoup f = open('url.txt','r') str = f.read() def postSlack( channelCode, message): headers = {'content-type': 'application/x-www-form-urlencoded'} respons = requests.post('https://slack.com/api/chat.postMessage', data = urllib.urlencode({ 'token': "トーンくんの番号", 'channel': channelCode.encode('utf_8') , 'text': message.encode('utf_8') , 'username': u"ブログ用".encode('utf_8') , 'icon_emoji': u":rage:", 'unfurl_links': 'true', 'unfurl_media': 'true', }),headers = headers) #print respons.text # RSSを取得する url = "https://www.pixivision.net/ja/rss" response = urllib2.urlopen(url) rss = response.read().decode("utf-8") # RSSからデータを抽出する soup = BeautifulSoup(rss, "lxml-xml" ) items = soup.find_all("item") item = items.pop(0) if not str==item.find("link").string: f = open('title.txt', 'w') f.write(item.find("link").string) f.close() print(item.find("title").string) print(item.find("link").string) postSlack("チャンネルid", u"違うものが来た"+item.find("title").string+item.find("link").string) else: print(item.find("title").string) print(item.find("link").string) postSlack("チャンネル", u"一緒だった"+item.find("title").string+item.find("link").string)
まず
f = open('title.txt','r') str = f.read()
で因数strの中にtitle.txtの文字情報が読み込まれます。ここでは適当に情報を入れておくといいと思います。 それでその下のif文の
if not str==item.find("link").string:
これで今取得して来たurlの先の情報とテキストのやつが一致していたら何も更新していないということで 違ったら更新されたということがわかります。
今日はこのくらいで終わりたいと思います。
参考にしたところ
http://www.ops.dti.ne.jp/ironpython.beginner/otherprocess.htmlwww.ops.dti.ne.jp