python - Pyhthon bs4 得到杂散文本
问题描述
<li><a class="atc-group atc-group-active" href="" data-url="/atc-kodlari/1">
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
<span class="lists-rundown-no">(16)</span>
</a>
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
<span class="lists-rundown-no">(16)</span>
<a class="atc-group atc-group-active" href="" data-url="/atc-kodlari/1">
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
HERE!!
<span class="lists-rundown-no">(16)</span>
</a></li>
我需要参加这里写的部分!!在 python 上使用漂亮的汤,但它是一个杂散的文本,所以它没有选择器或其他东西。有可能得到吗?
我试过了。
import requests
from bs4 import BeautifulSoup
r = requests.get('anywebsite')
source = BeautifulSoup(r.content,"lxml")
for child in source.select("#atc-wrapper > ul"):
for child2 in child.findChildren():
print(child2)
解决方案
您可以使用 CSS 选择器a:last-of-type i
来选择<i>
最后一个元素内的元素<a>
。然后使用find_next()
参数text=True
:
data = ''' <li><a class="atc-group atc-group-active" href="" data-url="/atc-kodlari/1">
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
A - Gastrointestinal kanal ve metabolizma
<span class="lists-rundown-no">(16)</span>
</a>
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
A - Gastrointestinal kanal ve metabolizma
<span class="lists-rundown-no">(16)</span>
<a class="atc-group atc-group-active" href="" data-url="/atc-kodlari/1">
<i class="fa fa-lg fa-pulse fa-spinner atc-group-loading" style="margin-right: 5px; display: none;"></i>
HERE!!
<span class="lists-rundown-no">(16)</span>
</a></li>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
# select last i
i = soup.select_one('a:last-of-type i')
# select next text
print(i.find_next(text=True).strip())
印刷:
HERE!!
进一步阅读:
推荐阅读
- python - 如何使用 GMSH 或类似工具从 .step 文件中自动生成网格?
- swift - 在 Xcode 中构建 Firebase 登录
- excel - 仅使用带有自动过滤器的用户界面来保护带有宏的工作簿不起作用
- swift - 将字符串转换为日期对象时出现问题
- javascript - 打开和关闭模式后重复数据
- c# - 基于屏幕大小的水平与垂直导航栏
- java - 我怎样才能知道线程中断后还有多少时间可以睡觉?
- firebase - 我需要加密 Firebase 数据库中的用户信息吗?
- sql - 总计一列与其他列的重复值
- javafx - 如何为 TornadoFx/JavaFx 设置 gradle