python - 无法使用 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
提前感谢您的帮助,如果需要,我会提供任何进一步的信息。
解决方案
这是如何使用 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.
推荐阅读
- javascript - 在 PHP 中为 JS Datepicker 输出日期 - 突出显示日期
- api - 每次应用程序从服务器请求数据时,如何使 Flutter ValueListenableBuilder 更新 ui
- android - 使用 Github API 和 Apollo 客户端出现 401 错误,但它以前有效
- c# - 布尔类型函数中的“并非所有代码路径都返回值”错误
- spring-boot - JPA , DB2 参数化查询字符串长度错误
- javascript - 没有按钮的贝宝订阅方法 - Javascript/Angular
- javascript - 清除按钮后输入字段不起作用
- java - 无法找到或加载主类 net.fabricmc.devlaunchinjector.Main fabricmc
- vue.js - Jest + Coverage + VueJs 如何覆盖 vue 方法?
- javascript - 如何过滤数组节点js中2个字段之间的日期