python-3.x - 刮掉标签之间的文字
问题描述
我只是 python 的新手,我无法获取标签之间的文本,这是完整表格的 html。
<div id="menu">
<h4 style="display:none">Horse Photo</h4>
<ul style="margin-top:5px;border-radius:6px">
<li style="padding:0">
<img src="/images/unknown_horse.png" style="width:298px;margin-bottom:-3px;border-radius:5px;">
</li>
</ul>
<h4>Horse Profile</h4>
<ul>
<li>Age<span>3yo</span></li>
<li>Foaled<span>17/11/2014</span></li>
<li>Country<span>New Zealand</span></li>
<li>Location<span>Kembla Grange</span></li>
<li>Sex<span>Filly</span></li>
<li>Colour<span>Grey</span></li>
<li>Sire<span>Mastercraftsman</span></li>
<li>Dam<span>In Essence</span></li>
<li>Trainer
<span>
<a href="/trainer/26970-r-l-price/">R & L Price</a>
</span>
</li>
<li>Earnings<span>$19,795</span></li>
</ul>
<h4>Owners</h4>
<ul>
<li style="font:normal 12px 'Tahoma">Bell View Park Stud (Mgr: A P Mackrell)</li>
</ul>
</div>
解决方案
用于解析 HTML 使用beautifulsoup
包。这样您就可以轻松地选择 html 文档的元素。要打印<span>
标签中的所有文本,您可以使用以下示例:
data = """
<div id="menu">
<h4 style="display:none">Horse Photo</h4>
<ul style="margin-top:5px;border-radius:6px">
<li style="padding:0">
<img src="/images/unknown_horse.png" style="width:298px;margin-bottom:-3px;border-radius:5px;">
</li>
</ul>
<h4>Horse Profile</h4>
<ul>
<li>Age<span>3yo</span></li>
<li>Foaled<span>17/11/2014</span></li>
<li>Country<span>New Zealand</span></li>
<li>Location<span>Kembla Grange</span></li>
<li>Sex<span>Filly</span></li>
<li>Colour<span>Grey</span></li>
<li>Sire<span>Mastercraftsman</span></li>
<li>Dam<span>In Essence</span></li>
<li>Trainer
<span>
<a href="/trainer/26970-r-l-price/">R & L Price</a>
</span>
</li>
<li>Earnings<span>$19,795</span></li>
</ul>
<h4>Owners</h4>
<ul>
<li style="font:normal 12px 'Tahoma">Bell View Park Stud (Mgr: A P Mackrell)</li>
</ul>
</div>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
for li in soup.select('span'):
if li.text.strip() == '':
continue
print(li.text)
将打印:
3yo
17/11/2014
New Zealand
Kembla Grange
Filly
Grey
Mastercraftsman
In Essence
R & L Price
$19,795
推荐阅读
- php - Laravel6 Passport accessToken 自定义撤销
- python - 如何使用 deepcopy python/colab
- linux - 更改其他进程中线程的优先级
- python - python中的utf-16转换
- git - 迁移到 GitLab 后可以删除原始仓库吗
- wordpress - 无法在 Wordpress 中归档博客文章
- database - SPARQL 维基数据。如何只选择维基百科数据库,避免笔记重复?
- python - pandas 按多个条件过滤,无需链接
- python - 为什么定义在 NumPy 文档字符串部分的冒号前有一个空格?
- javascript - 创建可定制的水箱可视化