这是我的脚本,个人部分已被清除。
import urllib, urllib2, cookielib
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
resp3 = opener.open('https://www.mynexia.com/login')
resp4 = resp3.read().split('input name=\"authenticity_token\" type=\"hidden\" value=\"')
resp5 = resp4[1].split('\" /></div>')
login = 'website username'
password = 'website pass'
authenticity_token = resp5
login_data = urllib.urlencode({'login' : login, 'password' : password,'authenticity_token' : authenticity_token})
opener.open('https://www.mynexia.com/session', login_data)
resp = opener.open('https://www.mynexia.com/houses/ourstaticaccountpage/climate')
resp1 = resp.read().split('<div class=\"temperature\"><span>')
resp2 = resp1[1].split('</span></div>')
int(resp2[0])
if resp2[0] > 75:
import smtplib
import string
SUBJECT = "Temperature is rising!"
TO = "helpdesk@whoever.blah"
FROM = "me@gmail.com"
text = "Temperature is " + resp2[0]
BODY = string.join((
"From: %s" % FROM,
"To: %s" % TO,
"Subject: %s" % SUBJECT,
"",
text
), "\r\n")
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("me@gmail.com", "gmailpass")
server.sendmail(FROM, [TO], BODY)
elif resp2[0] <= 75:
import smtplib
import string
SUBJECT = "Temperature is ok"
TO = "helpdesk@whereever.blah"
FROM = "me@gmail.com"
text = "Temperature is " + resp2[0]
BODY = string.join((
"From: %s" % FROM,
"To: %s" % TO,
"Subject: %s" % SUBJECT,
"",
text
), "\r\n")
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("me@gmail.com", "gmailpass")
server.sendmail(FROM, [TO], BODY)
它工作得很好,除了它总是评估它的价值resp2[0]
是> 75
什么。这个脚本的目的是在一些敏感机器运行的房间温度超过 75 度时提醒我。我正在抓取的网站只允许您在超过 90 时发送警报。到那时我有机器出现故障的风险,所以我想早点提醒自己。我将每 15 分钟使用一次 cronjob 运行它,一旦我让 if-else 语句正常工作,我只会将 <= 转储到日志文件而不是发送“一切都是 -好的警报。” 关于我为什么在基础数学上失败的任何建议?我的有问题int(resp2[0])
吗?默认情况下不是以 10 为基数吗?