首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium使用什么Python库来构造元素的".text“属性?

Selenium使用什么Python库来构造元素的".text“属性?
EN

Stack Overflow用户
提问于 2018-12-07 01:18:06
回答 2查看 83关注 0票数 0

我有一个使用Selenium-python的web抓取代码,我意识到我不需要运行任何javascript,所以为了提高效率,我将其“翻译”成urllib.requests和BeautifulSoup。我尝试在读取表时模仿selenium的".text“属性所做的工作。BeautifulSoup似乎没有这么简单的读表方法。当我试图在Selenium模块中搜索".text“属性是如何编码的时,我想我不知道如何查找这样的信息。有没有人能帮我弄清楚这个信息。在哪里解释了如何从html中检索这个属性?

代码语言:javascript
复制
Example_url = "http://www4.tjrj.jus.br/consultaProcessoWebV2/consultaMov.do?v=2&numProcesso=2008.001.000272-2&acessoIP=internet&tipoUsuario="

当我尝试使用Selenium时:

代码语言:javascript
复制
driver.get(Example_url)

driver.find_element_by_xpath('//*[@id="content"]/form/table/tbody').text

我得到了想要的结果(示例)

\n\n进程No 0000184-70.2008.8.19.0001\n2008.001.000272-2\n TJ/RJ - 16/11/2018 06:50:45\n ARQUIVADO em DEFINITIVO -MA Vara N: 1706,EM 02/07/2012\n Comarca da Capital 11ªVara罪犯\n nCartório da 11ªVara\n Endereço: Av。Erasmo Braga 115 L II sala 504 \n nBairro:Centro\n nCidade:里约热内卢\nício de Registro: 3ºOfício de Registro de Distribuição\n nAssunto: Furto (Art.155- CP) C/C犯罪Tentado,II\n类: Ação A Procedimento OrdináRio \n Autor MINISTERIO do ESTADO do RIO de JANEIRO\n Listar alteraçóes de personagens\n Advogado(s):TJ000002 -防卫方PéBLICO\n Tipo do movimento: arquivamento\n nData DE arquivamento: 02/07/2012\n Tipo de arquivamento: definitivo\nMaço recebido pelo DO Arquivo em: 09/07/2012\n nLocal de arquivamento: arquivo Geral -里约热内卢\n Tipo DO Movimento: Revogação da Suspensão do Processo (Art. 89 da Lei 9099)\n数据电影: 01/07/2012\n Tipo do Movimento: Ato Ordinatório Praticado\n数据:06/02/2012\n描述: Ag。baixa的探险队。Ofício eletrénico n: 206539271 A0 3: ORD em 14/02/2012,devidamente cumprido em 18/06/2012。Processo Para arquivar。\n Tipo do Movimento: Ato Ordinatório Praticado\n nData: 17/01/2012\n nDescrição: devolvido da digitação\n Tipo do Movimento: Digitação de Documentos\n nData da digitação: 17/01/2012\n Tipo do Movimento: Ato Ordinatório Praticado\n nData:06/01/2012\n nDescrição: Ato Ordinatório Praticado\n nData: 06/01/2012\nDescrição: Certifico a R.senençes de fls。111/112,transitou em julgado para as partes em 04/11/2011.“...(继续..)

EN

回答 2

Stack Overflow用户

发布于 2018-12-07 02:33:58

假设javascript不需要运行。我会在你指定的时间内测试。

我可能会先试着用熊猫取回桌子

代码语言:javascript
复制
import pandas as pd
result = pd.read_html("http://www4.tjrj.jus.br/consultaProcessoWebV2/consultaMov.do?v=2&numProcesso=2008.001.000272-2&acessoIP=internet&tipoUsuario=")
print(result[0].dropna()) # <== or choose appropriate index

否则,CSS选择器使用请求将表作为目标。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
url = 'http://www4.tjrj.jus.br/consultaProcessoWebV2/consultaMov.do?v=2&numProcesso=2008.001.000272-2&acessoIP=internet&tipoUsuario='
res  = requests.get(url,headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(res.content, 'lxml')
print(soup.select_one('#content table').text)
票数 1
EN

Stack Overflow用户

发布于 2018-12-07 04:19:51

在我的地方,它询问验证码,当我在浏览器中解决它之后,然后我在控制台中运行document.cookie来获取cookie。

代码语言:javascript
复制
import requests, re
from bs4 import BeautifulSoup

# simple table formatter
def cleanTable(table):
    table = '\n'.join([x.strip() for x in table.split('\n')])
    table = re.sub(r'(.)[\r\n](.)', r'\1 \2', table)
    table = re.sub(r'[\r\n]{2,}', '\n', table)
    return table.strip()

heads = {'Cookie' : 'JSESSIONID=0afafa3330d816c755a5df3c478cb6388d1b52b9dc5e.e34NbhiLbN0NbO0Lc30PaNaQbN0Me0;'}
Example_url = 'http://www4.tjrj.jus.br/consultaProcessoWebV2/consultaMov.do?v=2&numProcesso=2008.001.000272-2&acessoIP=internet&tipoUsuario='

html = requests.get(Example_url, headers=heads)
soup = BeautifulSoup(html.text, 'html.parser')
table = soup.find('table').text
# Python 2.7
# table = soup.find('table').text.encode('utf-8')

print(cleanTable(table))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53656611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档