Вот мой сценарий с очищенными личными битами.
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. К тому времени я рискую отключить машины, поэтому я хотел предупредить себя раньше.Я собираюсь запускать его с помощью cronjob каждые 15 минут, и как только я получу правильную инструкцию if-else, я просто собираюсь <= dump в файл журнала вместо отправки «Всеок бдить. "Любые предложения о том, почему я не в базовой математике?Есть проблема с моим <code>int(resp2[0])?Разве это не база 10 по умолчанию?