-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
179 lines (135 loc) · 5.65 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
import datetime
import os
import smtplib
import time
from email import encoders
from email.mime.base import MIMEBase
from selenium import webdriver
import subprocess
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from docx import Document
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import StaleElementReferenceException
#acessar site da oab e preencher o formulário de login
oab = 93876
with open ('psswrd.txt') as file:
senha = file.readlines()
senha_oab = senha[1]
chrome = webdriver.Chrome()
chrome.get('https://www2.oabsp.org.br/asp/dotnet/LoginSite/LoginMain.aspx?ReturnUrl=https:%2f%2fwww2.oabsp.org.br%2fasp%2fdotnet%2fLoginSite%2fAcessoRestrito%2fDefaultMain.aspx')
time.sleep(5)
oab_input = chrome.find_elements(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_ctrLogin_UserName"]')[0]
oab_input.send_keys(oab)
senha_input = chrome.find_elements(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_ctrLogin_Password"]')[0]
senha_input.send_keys(senha_oab)
time.sleep(10)
botao = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_ctrLogin_Login"]')
chrome.execute_script("arguments[0].click();", botao)
time.sleep(5)
print('Fez login')
#entrar na aba de intimações
intimacoes = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder2_pnIcones"]/span/table/tbody/tr[3]/td[1]/a/img')
chrome.execute_script("arguments[0].click();", intimacoes)
print('Entrando em intimações')
time.sleep(10)
if (chrome.find_element(By.XPATH, '//*[@id="ctl00_btnPopupAvisoFechar"]')):
chrome.find_element(By.XPATH, '//*[@id="ctl00_btnPopupAvisoFechar"]').click()
time.sleep(5)
#pegar e preencher as datas
dia_de_hoje = datetime.date.today()
desconto_dias = dia_de_hoje.day - 5
dias_atras = dia_de_hoje.replace(day=desconto_dias).strftime("%d/%m/%Y")
dia_de_hoje = dia_de_hoje.strftime("%d/%m/%Y")
data_inicio = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_txtSelDataInicio"]')
data_inicio.clear()
data_inicio.send_keys(dias_atras)
data_fim = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_txtSelDataFim"]')
data_fim.clear()
data_fim.send_keys(dia_de_hoje)
#pesquisar intimações
pesquisar = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_btnConsultar"]')
chrome.execute_script("arguments[0].click();", pesquisar)
print(f'Colocou e pesquisou as datas {dias_atras} e {dia_de_hoje}')
time.sleep(10)
#associações todas as intimações
ver_todos = chrome.find_element(By.XPATH, '//*[@id="ctl00_ContentPlaceHolder1_Button2"]')
chrome.execute_script("arguments[0].click();", ver_todos)
print('Clicou em ver todos')
time.sleep(10)
#exibir todas as intimações
exibir_todas_paginas = chrome.find_element(By.XPATH, '//*[@title="Atenção: Exibir todas as publicações em uma única tela pode deixar o carregamento da página mais lento"]')
chrome.execute_script("arguments[0].click();", exibir_todas_paginas)
print('Clicou em exibir todas as páginas')
time.sleep(30)
###################################
def acha_btn():
try:
print('Tentando clicar nos três pontos')
wait = WebDriverWait(chrome, 10)
tres_pts = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@title="Exibir conteúdo completo"]')))
chrome.execute_script("arguments[0].click();", tres_pts)
print('Clicou nos três pontos')
time.sleep(15)
acha_btn()
except StaleElementReferenceException:
print('Não achou os três pontos')
pass
except NoSuchElementException:
print("Elemento não encontrado")
pass
def filtro():
retorno = []
todas_publicacoes = chrome.find_elements(By.TAG_NAME, 'tr')
for elemento in todas_publicacoes:
if str(oab) in elemento.text:
retorno.append(elemento.text)
return retorno
def converter_docx_para_pdf(arquivo_docx, arquivo_pdf):
# Comando para converter usando o LibreOffice
comando = ['libreoffice', '--convert-to', 'pdf', '--outdir', '.', arquivo_docx]
# Executar o comando
subprocess.run(comando)
acha_btn()
publicações_filtradas = filtro()
if os.path.exists('intimações_novas.docx'):
os.remove('intimações_novas.docx')
print('Arquivo removido')
doc = Document()
for publicação in publicações_filtradas:
doc.add_paragraph(publicação)
doc.save('intimações_novas.docx')
print('Arquivo criado')
converter_docx_para_pdf('intimações_novas.docx', 'intimações_novas.pdf')
pdf = 'intimações_novas.pdf'
#################################################
server = 'smtp.gmail.com'
port = 587
email_envio = '[email protected]'
with open ('psswrd.txt') as file:
senha = file.readlines()
senha_envio = senha[0]
destinatario = '[email protected]'
arquivo_anexo = 'intimações_novas.docx'
corpo = f'Segue em anexo as intimações do dia {dias_atras} até {dia_de_hoje}'
msg = MIMEMultipart()
msg['From'] = email_envio
msg['To'] = destinatario
msg['Subject'] = 'Intimações OAB'
msg.attach(MIMEText(corpo, 'plain'))
with open(pdf, 'rb') as anexo:
part = MIMEBase('application', 'pdf')
part.set_payload(anexo.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename="{pdf}"')
msg.attach(part)
# Iniciando conexão SMTP
with smtplib.SMTP(server, port) as smtp:
smtp.starttls()
smtp.login(email_envio, senha_envio)
smtp.send_message(msg)
print(f"Email enviado para {destinatario}")
os.remove('intimações_novas.pdf')