python - beautifulsoup:在标签内放置文本
问题描述
我正在尝试使用 beautifulsoup 从 html 文件中提取字符串。查询回复其中包含标签标签,我怎样才能摆脱这些标签。
from bs4 import BeautifulSoup
import requests
with open('/Desktop/filename.html') as html_file:
soup = BeautifulSoup(html_file, 'lxml')
string = soup.find('div', class_="col-sm-8 col-xs-6")
print(string)
输出-
<div class="col-sm-8 col-xs-6">
Sherlock Holmes <br>
<label for="AgentAddress" style="display: none;">
Detective's Address
</label>
221B Baker Street London <br>
<label for="AgentCityStateZip" style="display: none;">
City, State, Zip
</label>
London, United Kingdom
</div>
print(string.text)
输出
Sherlock Holmes
Detective's Address
221B Baker Street London
City, State, Zip
London, United Kingdom
我对<label></label>
标签内的文本不感兴趣,我怎样才能摆脱它们以便输出是 -
Sherlock Holmes
221B Baker Street London
London, United Kingdom
解决方案
例如,您可以在打印之前尝试使用分解:
for label_element in string.find_all("label"):
label_element.decompose()
推荐阅读
- powershell - 随 foreach 的每个循环递增的动态变量名称
- javascript - Electron:将“全屏”标志设置为 false 不会禁用 macOS 上的全屏按钮
- c# - Mongo c#查询-聚合匹配如何通过In语句检查列表中的uid是否存在
- r - 带中断的增量序列
- python - 熊猫数据框返回无值
- sql - SUBSTRING 空值替代方案
- php - php中(bool)和(boolean)之间的区别?
- python - 如何在 Python 中为 EXR 文件将 float16 转换为 uint8
- fiware-cygnus - 如何从 Fiware Cygnus 获取数据?
- java - 将运算符添加到字符串返回值