-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot_code.py
139 lines (110 loc) · 3.88 KB
/
bot_code.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
import time
from datetime import date
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains
# funçõa que coleta a data atual e formata na forma do site da cvm
def today_date():
dia = str(date.today().day)
mes = str(date.today().month)
ano = str(date.today().year)
if date.today().day < 10:
dia = '0' + dia
if date.today().month < 10:
mes = '0' + mes
return dia + mes + ano
# inputs
company = input('Nome da empresa: ')
init_date = input('Data inicial de procura(ddmmaa): ')
if input('Deseja manter a categoria de pesquisa como DFP?(S/N) ').upper() == 'N':
category = input('Digite o nome da categoria desejada: ')
else:
category = 'DFP'
# ! ALTERE PARA O PATH DO SEU CHROMEDRIVER
PATH = r'C:/Users/Tommasellk/FELIPE/bots/chromedriver.exe'
driver = webdriver.Chrome(PATH)
# Acessa a pagina da cvm
try:
driver.get('https://cvmweb.cvm.gov.br/SWB/Sistemas/SCW/CPublica/CiaAb/FormBuscaCiaAb.aspx?TipoConsult=c')
except:
driver.quit()
# Pesquisa o nome da empresa
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="txtCNPJNome"]')
search.send_keys(company)
print("Pesquisa da empresa realizada!")
search.send_keys(Keys.RETURN)
except :
print('não foi possivel realizar a pesquisa')
driver.implicitly_wait(10)
# Seleciona a empresa (caso haja mais de um sempre a primeira)
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="dlCiasCdCVM__ctl1_Linkbutton1"]').click()
print("Empresa selecionada!")
except:
print('não foi possivel selecionar a empresa')
driver.implicitly_wait(10)
# Marca da opção da ultima data de referencia
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="chkUltimaData"]').click()
print("Ultima data de referencia selecionada")
except:
print('não foi possivel clicar na ultima data de referencia')
driver.implicitly_wait(10)
# Preenche a data inicial
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="txtDataIni"]')
search.send_keys(init_date)
print("data inicial preenchida")
except:
print('não foi possivel adicionar data inicial')
driver.implicitly_wait(10)
# Preenche a data de hoje como data final
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="txtDataFim"]')
search.send_keys(today_date())
print("data atual preenchida")
except:
print('não foi possivel adicionar data atual')
driver.implicitly_wait(10)
# Marca a categoria desejada (DFP por default)
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="cboCategoria_chosen"]').click()
search = driver.find_element_by_xpath('//*[@id="cboCategoria_chosen_input"]')
search.send_keys(category)
search.send_keys(Keys.RETURN)
print("clique feito")
except:
print('não foi possivel selecionar a categoria')
driver.implicitly_wait(10)
# Realiza a consulta
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="btnConsulta"]').click()
print("clique feito")
except:
print('não foi possivel Consultar')
driver.implicitly_wait(10)
time.sleep(30)
# Depois de 30s de espera pergunta se o usuario quer salvar o .zip padrao
question = input('Deseja salvar os arquivos .zip?(S/N) ').upper()
# Se ele não quiser, o driver é fechado
if question == 'N':
driver.implicitly_wait(10)
driver.quit()
# Se ele quiser, o .zip é salvo e o programa é fechado
try:
driver.implicitly_wait(10)
search = driver.find_element_by_xpath('//*[@id="grdDocumentos"]/tbody/tr/td[11]/i[2]').click()
search = driver.find_element_by_aria('ui-id-159').click()
print("clique final feito")
except:
if question == 'S':
print('não foi possivel visualizar documento')
driver.quit()