在python3中,我需要刮一个site
网站上的每个查询都会生成一系列我要捕获的信息:
1-法律程序编号
2-过程类型(示例-Procedimento Comum Cível/Indenizaço por Dano Moral)
3-字符串“Reqdo:”或“Reqte:”
4-各自的名称(例如-谷歌巴西互联网有限公司)
5-日期
6-工艺位置(示例-9ªVara de Fazenda pública)
为了做到这一点,我隔离了法律程序信息所在的区块
from bs4 import BeautifulSoup
import requests
link = 'https://esaj.tjsp.jus.br/cpopg/search.do?conversationId=&dadosConsulta.localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&dadosConsulta.tipoNuProcesso=UNIFICADO&dadosConsulta.valorConsulta=Google&uuidCaptcha=&pbEnviar=Pesquisar'
try:
res = requests.get(link, verify=False) # I ignore SSLError just this case
except (requests.exceptions.HTTPError, requests.exceptions.RequestException, requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e:
print(str(e))
return
except Exception as e:
print("Exception")
return
soup = BeautifulSoup(res.text, "lxml")
bloco = soup.find_all('div', {'id': 'listagemDeProcessos'})
“bloco”的内容是,第一行:
[<div id="listagemDeProcessos">
<div style="padding:0px 10px;">
<div class="">
<br/>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td background="/cpopg/imagens/spw/fundo_subtitulo.gif" height="21" nowrap="" valign="top">
<h2 class="subtitle">
Foro Central - Fazenda Pública/Acidentes
</h2>
</td>
<td aria-hidden="true" background="/cpopg/imagens/spw/fundo_subtitulo2.gif" width="90%">
<img height="20" src="/cpopg/imagens/spw/final_subtitulo.gif" tabindex="-1" width="16"/>
</td>
</tr>
</table>
<br/>
<table border="0" cellpadding="2" cellspacing="0" class="secaoFormBody" id="" style="" width="100%">
</table>
</div>
</div>
<div class="fundoClaro" id="divProcesso2S000X02D0000" style="margin-left: 10px; margin-top: 0px;">
<div class="fundoClaro">
<div class="nuProcesso">
<!-- Atributos -->
<a class="linkProcesso" href="/cpopg/show.do?processo.codigo=2S000X02D0000&processo.foro=53&paginaConsulta=1&conversationId=&dadosConsulta.localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&dadosConsulta.tipoNuProcesso=UNIFICADO&dadosConsulta.valorConsulta=Google&uuidCaptcha=&pbEnviar=Pesquisar">
1094431-73.2018.8.26.0100
</a>
<span class="">
</span>
</div>
Procedimento Comum Cível <b>/</b> Indenização por Dano Moral
<br/>
<div class="espacamentoLinhas">
<span style="font-weight: bold">Reqdo:</span>
Google Brasil Internet Ltda
</div>
<div class="espacamentoLinhas">
<span style="font-weight: bold">Recebido em:</span>
11/09/2018 - 9ª Vara de Fazenda Pública
</div>
</div>
</div>
<div class="fundoEscuro" id="divProcesso1H00079DG0000" style="margin-left: 10px; margin-top: 12px;">
<div class="fundoEscuro">
<div class="nuProcesso">
<!-- Atributos -->
<a class="linkProcesso" href="/cpopg/show.do?processo.codigo=1H00079DG0000&processo.foro=53&paginaConsulta=1&conversationId=&dadosConsulta.localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&dadosConsulta.tipoNuProcesso=UNIFICADO&dadosConsulta.valorConsulta=Google&uuidCaptcha=&pbEnviar=Pesquisar">
1045899-54.2014.8.26.0053
</a>
<span class="">
</span>
</div>
Procedimento Comum Cível <b>/</b> Crédito Tributário
<br/>
<div class="espacamentoLinhas">
<span style="font-weight: bold">Reqte:</span>
Google Brasil Internet Ltda.
</div>
<div class="espacamentoLinhas">
<span style="font-weight: bold">Recebido em:</span>
31/10/2014 - 10ª Vara de Fazenda Pública
</div>
</div>
</div>
<div class="fundoClaro" id="divProcesso1H00020270000" style="margin-left: 10px; margin-top: 12px;">
<div class="fundoClaro">
<div class="nuProcesso">
我注意到所有的信息块都是用字符串'<!-- Atributos -->'
分隔的
这也可以被视为标签吗?你知道吗
我认为捕获信息块的一个策略是捕获所有具有字符串'<!-- Atributos -->'
的内容
然后遍历它们并提取感兴趣的信息
有道理吗?拜托,我怎么做?你知道吗
BeautifulSoup 4.7+使用一个名为Soup Screen的精选库,它安装在BeautifulSoup的旁边。您可以直接导入它并创建CSS选择器匹配模式:
进程类型没有封装在易于实现的元素中,但它遵循进程编号,因此我们可以创建一个简单的函数来提取它后面的文本,直到我们到达下一个
div
:然后我们就可以把它们放在一起了。在这里,我们基本上以id为
listagemDeProcessos
的div
的所有子对象为目标,然后匹配每个子对象并处理每个子对象的数据提取。每次找到流程编号时,我们都会在列表中开始一个新条目:输出
编辑:修复了
get_process_type
函数。你知道吗您可以使用
div[id^=divProcesso]
选择器获得bloco,这意味着div
具有id以divProcesso开始。你知道吗相关问题 更多 >
编程相关推荐