首页 > 解决方案 > 无法使用 Selenium Python 获取没有标签的文本

问题描述

首先,我将展示我遇到问题的代码,以便更好地解释自己。

<div class="archivos"> ... </div>
<br>
<br>
<br>
<br>
THIS IS THE TEXT THAT I WANT TO CHECK
<div class="archivos"> ... </div>
...

我在 Python 中使用 Selenium。

所以,这是我正在使用的 html 的一部分。我的目标是,在带有“class=archivos”的 div 中,有一个我想点击的链接,但为此,我需要首先分析它上面的文本,以了解我是否要点击该链接。

问题是文本上没有标签,我似乎找不到复制它的方法,所以我可以搜索它以查找我想要的信息。文本每次都会更改,因此我需要找到每个“class=archivos”之前的可能文本。

到目前为止,我已经尝试了很多方法来主要使用 XPath 找到它,试图找到 div 的前一个元素。由于我对 Selenium 和 XPaths 的经验不是很丰富,因此我还没有提供任何有用的东西。

我找到了这个https://chercher.tech/python/relative-xpath-selenium-python ,它帮助我尝试了一些 XPath,以及一些关于 SO 的回复,但无济于事。

我在某处读过,我可以使用来自 Python 的 Javascript 代码使用 Selenium 来获取它,但我不知道 Javascript,也不知道该怎么做。也许有人明白我在说什么。

如果有帮助,这是网页:http: //www.boa.aragon.es/cgi-bin/EBOA/BRSCGI? CMD=VERLST&DOCS=1-200&BASE=BOLE&SEC=FIRMA&SEPARADOR=&PUBL=20200901

提前感谢您的帮助,如果需要,我会提供任何进一步的信息。

标签: pythonseleniumweb-scraping

解决方案


这是如何使用 BeautifulSoup 提取先前文本的示例。我用模块加载了页面requests,但您可以将 HTML 源代码从以下位置提供给 BeautifulSoup selenium

import requests
from bs4 import BeautifulSoup


url = 'http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERLST&DOCS=1-200&BASE=BOLE&SEC=FIRMA&SEPARADOR=&PUBL=20200901'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

for t in soup.select('.archivos'):
    previous_text = t.find_previous(text=True).strip()
    link = t.a['href']
    print(previous_text)
    print('http://www.boa.aragon.es' + link)
    print('-' * 80)

印刷:

ORDEN HAP/804/2020, de 17 de agosto, por la que se modifica la Relación de Puestos de Trabajo de los Departamentos de Industria, Competitividad y Desarrollo Empresarial y de Economía, Planificación y Empleo.
http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERDOC&BASE=BOLE&PIECE=BOLE&DOCS=1-22&DOCR=1&SEC=FIRMA&RNG=200&SEPARADOR=&&PUBL=20200901
--------------------------------------------------------------------------------
ORDEN HAP/805/2020, de 17 de agosto, por la que se modifica la Relación de Puestos de Trabajo del Departamento de Agricultura, Ganadería y Medio Ambiente.
http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERDOC&BASE=BOLE&PIECE=BOLE&DOCS=1-22&DOCR=2&SEC=FIRMA&RNG=200&SEPARADOR=&&PUBL=20200901
--------------------------------------------------------------------------------
ORDEN HAP/806/2020, de 17 de agosto, por la que se modifica la Relación de Puestos de Trabajo del Organismo Autónomo Instituto Aragonés de Servicios Sociales.
http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERDOC&BASE=BOLE&PIECE=BOLE&DOCS=1-22&DOCR=3&SEC=FIRMA&RNG=200&SEPARADOR=&&PUBL=20200901
--------------------------------------------------------------------------------
ORDEN ECD/807/2020, de 24 de agosto, por la que se aprueba el expediente relativo al procedimiento selectivo de acceso al Cuerpo de Catedráticos de Música y Artes Escénicas.
http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERDOC&BASE=BOLE&PIECE=BOLE&DOCS=1-22&DOCR=4&SEC=FIRMA&RNG=200&SEPARADOR=&&PUBL=20200901
--------------------------------------------------------------------------------
RESOLUCIÓN de 28 de julio de 2020, de la Dirección General de Justicia, por la que se convocan a concurso de traslado plazas vacantes entre funcionarios de los Cuerpos y Escalas de Gestión Procesal y Administrativa, Tramitación Procesal y
Administrativa y Auxilio Judicial de la Administración de Justicia.
http://www.boa.aragon.es/cgi-bin/EBOA/BRSCGI?CMD=VERDOC&BASE=BOLE&PIECE=BOLE&DOCS=1-22&DOCR=5&SEC=FIRMA&RNG=200&SEPARADOR=&&PUBL=20200901
--------------------------------------------------------------------------------

...and so on.

推荐阅读