python-3.x - 如何使用 Selenium 和 Python 从多个 span 元素中提取文本内容
问题描述
如何使用 selenium 从多个 DIV 元素中选择文本内容?
在网站上,我打算收集包含 div 和 span 的信息。
我如何单独收集这些信息?
我需要每个块的 panel-body div > span 中的内容
driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[1]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[2]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[3]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][2]/span[1]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][2]/span[2]").text
html
<div class="panel-heading">
<h3 class="panel-title">Identificação</h3>
</div>
<div class="panel-body">
<span class="spanValorVerde">TEXT</span><br>
<span style="font-size:small;color:gray">TEXT</span><br>
<br>
<span class="spanValorVerde">TEXT</span>
</div>
</div>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Situação Atual</h3>
</div>
<div class="panel-body">
<span class="spanValorVerde">TEXT</span> <br>
<span class="spanValorVerde">TEXT</span>
</div>
</div>
解决方案
我期望“选择文本”意味着“获取文本”。
第一个for循环:
count = driver.find_elements_by_xpath(".//div[@class='panel-body'][i]")
第二个带有count
迭代的for循环:
driver.find_element_by_xpath(".//div[@class='panel-body'][i]/span[j]").text
如果您使用 findElements 进行搜索,".//div[@class='panel-body'][i]"
将为您提供当前的总元素,然后添加另一个循环 for.//div[@class='panel-body'][i]/span[j]
然后获取文本。希望能帮助到你!
推荐阅读
- python - 在python中传递变量时将数字匹配为字符串开头的字符串
- javascript - 为什么 trigger() 会触发 select() 处理程序 3 次?
- mysql - 表中新增一个不允许为空的字段,然后改成允许为空,导致查询错误
- python - 如何确定 .npz 文件的形状/大小
- python - 从 Windows 相机获取文件位置和名称
- python - Matplotlib errorbar bug with capsize + ecolor?
- javascript - React 功能组件正在无限次重新渲染
- javascript - vee-validate@4.x - 如何手动验证字段
- php - Maatwebsite\Excel\Facades\Excel 正在显示和使用 Maatwebsite\Excel\Concerns\FromCollection;显示未定义类型
- python - 使用 patchify 库创建补丁时出现问题