-
Notifications
You must be signed in to change notification settings - Fork 0
/
crawler.py
45 lines (37 loc) · 1.47 KB
/
crawler.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
from structure.utils.functions import split_process, create_dict, write_json, dict_dados_coletados
from structure.crawler.driver import start_urls, get_chrome_driver
from structure.utils.web_selectors import Esaj1Grau, Esaj2Grau
from structure.crawler.scrape import (
search_process,
get_data_header,
get_partes_processo,
get_movimentacoes
)
def start_crawler(process_number):
driver = get_chrome_driver()
list_dict = []
instancia = 1
UF = None
esaj = Esaj1Grau()
cnj = split_process(process_number)
if cnj == '802': UF = 'Alagoas'
elif cnj == '806': UF = 'Ceará'
else: print('processo não corresponde ao TJAL/TJCE')
if UF is not None:
urls = start_urls[UF]
for url in urls:
driver.get(url)
if search_process(driver, process_number, esaj):
list_dict.append({f'{instancia}º Grau':'processo não encontrado'})
esaj = Esaj2Grau()
instancia = 2
continue
dados_principais = get_data_header(driver, esaj)
partes_processo = get_partes_processo(driver, esaj)
movimentacoes = get_movimentacoes(driver, esaj)
list_dict.append(dict_dados_coletados(instancia, dados_principais, partes_processo, movimentacoes))
esaj = Esaj2Grau()
instancia = 2
json_content = create_dict(process_number, UF, list_dict)
write_json(json_content)
return json_content