-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspider.py
97 lines (82 loc) · 4.64 KB
/
spider.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
import scrapy
class Spider(scrapy.Spider):
name = 'stjspider'
start_urls = ['https://ww2.stj.jus.br/processo/pesquisa/?termo=&aplicacao=processos.ea&tipoPesquisa=tipoPesquisaGenerica&chkordem=DESC&chkMorto=MORTO']
def parse(self, response):
self.log(response.css('title::text').extract()[0])
data = [
('aplicacao', 'processos.ea'),
('acao', 'pushconsultarprocessoconsultalimitenaoatendidasjaincluidas'),
('descemail', ''),
('senha', ''),
('NumPaginaAtual', '1'),
('NumTotalRegistros', '36892'),
('VaiParaPaginaAnterior', 'false'),
('VaiParaPaginaSeguinte', 'true'),
('ComProximaPagina', 'TRUE'),
('totalRegistrosPorPagina', '40'),
('tipoPesquisaSecundaria', ''),
('sequenciaisParteAdvogado', '-1'),
('refinamentoAdvogado', ''),
('refinamentoParte', ''),
('tipoOperacaoFonetica', ''),
('tipoOperacaoFoneticaPhonos', '2'),
('origemOrgaosSelecionados', ''),
('origemUFSelecionados', ''),
('julgadorOrgaoSelecionados', ''),
('tipoRamosDireitoSelecionados', 'AD'),
('situacoesSelecionadas', ''),
('num_processo', ''),
('num_registro', ''),
('numeroUnico', ''),
('numeroOriginario', ''),
('advogadoCodigo', ''),
('dataAutuacaoInicial', ''),
('dataAutuacaoFinal', ''),
('dataPublicacaoInicial', '29/10/2017'),
('dataPublicacaoFinal', '29/07/2017'),
('parteAutor', 'FALSE'),
('parteReu', 'FALSE'),
('parteOutros', 'FALSE'),
('parteNome', ''),
('opcoesFoneticaPhonosParte', '2'),
('quantidadeMinimaTermosPresentesParte', '1'),
('advogadoNome', ''),
('opcoesFoneticaPhonosAdvogado', '2'),
('quantidadeMinimaTermosPresentesAdvogado', '1'),
('conectivo', 'OU'),
('listarProcessosOrdemDescrecente', 'TRUE'),
('listarProcessosOrdemDescrecenteTemp', 'TRUE'),
('listarProcessosAtivosSomente', 'FALSE'),
('listarProcessosEletronicosSomente', 'FALSE'),
]
yield scrapy.FormRequest('https://ww2.stj.jus.br/processo/pesquisa/',
meta={'cookiejar': 1},
formdata=dict(data),
dont_filter=True,
callback=self.parse_list)
def parse_list(self, response):
caminho_xpath = "/html/body[@id='voltarTopo']/div[@id='idInterfaceVisualCorpo']/" \
"div[@ id='idInterfaceVisualBlocoDeMenuBannersNavegacaoAplicacao']/" \
"div[@ id='idInterfaceVisualBlocoDeMenuBannersNavegacaoAplicacaoEmpacotador']/" \
"div[@ id='idInterfaceVisualBlocoDeMenuBannersNavegacaoAplicacaoEmpacotadorInterno']/" \
"div[@ id='idInterfaceVisualAreaAreaTitulo']/div[@ id='idInterfaceVisualAreaBlocoExterno']/" \
"div[@ id='idInterfaceVisualArea']/div[@ id='idInterfaceVisualAreaBlocoInterno']/" \
"span[@ id='idSpanConteudoCentro']/div[@ id='idBlocoLinhasProcesso']/" \
"div[@ id='idBlocoInternoLinhasProcesso']/" \
"div[@class='clsListaProcessoFormatoVerticalBlocoExterno'][2]/" \
"span[@class='clsListaProcessoFormatoVerticalLinha clsListaProcessoFormatoVerticalBlocoEscuro']/" \
"span[@class='clsBlocoProcessoColuna1e2e3e4 clsBlocoProcessoUfNumeroRegistroDataAutuacaoTipo']/" \
"span[@class='clsBlocoProcessoColuna1e2 clsBlocoProcessoUfNumeroRegistro']/" \
"span[@class='clsBlocoProcessoColuna clsBlocoProcessoColuna2 classSpanNumeroRegistro']/a/@href"
link = response.xpath(caminho_xpath).extract()[0]
self.log("https://ww2.stj.jus.br" + link)
yield scrapy.Request("https://ww2.stj.jus.br" + link,
callback=self.parse_details)
def parse_details(self, response):
caminho_xpath = "//span[@id='idProcessoDetalhesBloco1']"
processo = caminho_xpath + "/div[@class='classDivLinhaDetalhes'][1]/span[@class='classSpanDetalhesTexto']"
parte_ativa = caminho_xpath + "/div[@id='idDetalhesPartesAdvogadosProcuradores']/" \
"div[@class='classDivLinhaDetalhes'][1]/span[@class='classSpanDetalhesTexto']/a"
details = response.xpath(caminho_xpath).extract()
self.log(details)