Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. from bs4 import BeautifulSoup
  2. import time
  3. from selenium import webdriver
  4. from selenium.webdriver.firefox.options import Options
  5. import smtplib
  6. from email.mime.text import MIMEText
  7. from email.mime.multipart import MIMEMultipart
  8. from email.mime.base import MIMEBase
  9. from email import encoders
  10. from datetime import date
  11.  
  12. def EmailPressMax():
  13. email_user = 'gclithg@gmail.com'
  14. email_password = 'Guixwq6206!'
  15. recipients = ['gclithg@gmail.com']#, 'guilhermelithg@vilatec.com.br', 'hebervila@vilatec.com.br', 'pedrosilva@vilatec.com.br']
  16.  
  17. subject = 'ALERTA: PRESSÃO MUITO ALTA NO MCC'
  18.  
  19. msg = MIMEMultipart()
  20. msg['From'] = email_user
  21. msg['To'] = ", ".join(recipients)
  22. msg['Subject'] = subject
  23.  
  24.  
  25. body = 'Pressão medida: ' + str(pressao) + '\nPressão ideal: 120'
  26. msg.attach(MIMEText(body,'plain'))
  27.  
  28. filename='proof.png'
  29. attachment =open(filename,'rb')
  30.  
  31. part = MIMEBase('application','octet-stream')
  32. part.set_payload((attachment).read())
  33. encoders.encode_base64(part)
  34. part.add_header('Content-Disposition',"attachment; filename= "+filename)
  35.  
  36. msg.attach(part)
  37. text = msg.as_string()
  38. server = smtplib.SMTP('smtp.gmail.com',587)
  39. server.starttls()
  40. server.login(email_user,email_password)
  41.  
  42.  
  43. server.sendmail(email_user,recipients,text)
  44. server.quit()
  45.  
  46. #ENTRAR NO SITE
  47. options = Options()
  48. options.headless = True
  49. driver = webdriver.Firefox(options=options, executable_path="geckodriver.exe")
  50. url = "https://pngwndfr.p18.rt3.io/"
  51. print("Carregando site...")
  52. driver.get(url)
  53. print("Site carregado!")
  54. html = driver.page_source
  55. soup = BeautifulSoup(html, 'lxml')
  56.  
  57. #PARAMETROS
  58. PRESSAO_MAX = 10
  59. PRESSAO_MIN = 40
  60. UMIDADE_MAX = 80
  61. UMIDADE_MIN = 1
  62. TEMPERATURA_MAX = 250
  63. TEMPERATURA_MIN = 1
  64. FLUXO_AR_MAX = 5000
  65. FLUXO_AR_MIN = 10
  66.  
  67. #VARIAVEIS
  68. global pressao
  69. global umidade
  70. global temperatura
  71. global fluxo_ar
  72.  
  73.  
  74. #INFOS
  75. a = soup.find("span", id="value3")
  76. pressao = abs(float(a.text))
  77.  
  78. b = soup.find("span", id="value2")
  79. umidade = float(b.text)
  80.  
  81. c = soup.find("span", id="value1")
  82. temperatura = float(c.text)
  83.  
  84. d = soup.find("span", id="value6")
  85. fluxo_ar = float(d.text)
  86.  
  87. if (pressao > PRESSAO_MAX):
  88. print("ALERTA: PRESSÃO MUITO ALTA")
  89. time.sleep(5)
  90. e = soup.find("span", id="value3")
  91. nova_pressao = abs(float(a.text))
  92. print('Nova pressao: {}'.format(nova_pressao))
  93. if (nova_pressao > PRESSAO_MAX):
  94. driver.get_screenshot_as_file('proof.png')
  95. print("Screenshot tirada.")
  96. print('Enviando email...')
  97. try:
  98. EmailPressMax()
  99. print("Email enviado!")
  100. except:
  101. print('O emal não pode ser enviado.')
  102.  
  103.  
  104.  
  105. print('Pressão: {}'.format(pressao))
  106. print('Umidade: {}'.format(umidade) )
  107. print('Temperatura: {}'.format(temperatura))
  108. print('Fluxo de ar: {}'.format(fluxo_ar))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement