使用bs4查找和删除HTML5数据-*属性
HTML5文件可能包含 我想用bs4查找并删除所有这些数据-*属性 根据bs4文档,可以使用attrs属性搜索这些属性 例如:使用bs4查找和删除HTML5数据-*属性,html,python-3.x,beautifulsoup,Html,Python 3.x,Beautifulsoup,HTML5文件可能包含 我想用bs4查找并删除所有这些数据-*属性 根据bs4文档,可以使用attrs属性搜索这些属性 例如: import re from bs4 import BeautifulSoup data_soup = BeautifulSoup('<div data-foo="value">foo!</div>') data_soup.find_all(attrs={"data-foo": "value"}) 我需要使用什么正则表达式来查找所有数据-*属性
import re
from bs4 import BeautifulSoup
data_soup = BeautifulSoup('<div data-foo="value">foo!</div>')
data_soup.find_all(attrs={"data-foo": "value"})
是的,要删除属性,只需在
tag.attrs
上使用del
:
data = '''
<ul>
<li data-animal-type="bird" data-other="this is other data">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
print('Original soup:')
print(soup)
print('-' * 80)
for tag in soup.find_all(lambda t: any(i.startswith('data-') for i in t.attrs)):
for attr in list(tag.attrs):
if attr.startswith('data-'):
del tag.attrs[attr]
print()
print('Soup without data-* tags:')
print(soup)
print('-' * 80)
data=''
- Owl
鲑鱼
- 狼蛛
“”
从bs4导入BeautifulSoup
soup=BeautifulSoup(数据'lxml')
打印('原始汤:')
印花(汤)
打印('-'*80)
用于soup.find_all(lambda t:any(i.startswith('data-'),用于t.attrs中的i)):
对于列表中的属性(tag.attrs):
如果attr.startswith('data-'):
del tag.attrs[attr]
打印()
打印('没有数据的汤-*标记:')
印花(汤)
打印('-'*80)
这张照片是:
Original soup:
<html><body><ul>
<li data-animal-type="bird" data-other="this is other data">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul></body></html>
--------------------------------------------------------------------------------
Soup without data-* tags:
<html><body><ul>
<li>Owl</li>
<li>Salmon</li>
<li>Tarantula</li>
</ul></body></html>
--------------------------------------------------------------------------------
原汁原味汤:
- Owl
鲑鱼
- 狼蛛
--------------------------------------------------------------------------------
无数据的汤-*标记:
- 猫头鹰
- 三文鱼
- 狼蛛
--------------------------------------------------------------------------------
Original soup:
<html><body><ul>
<li data-animal-type="bird" data-other="this is other data">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul></body></html>
--------------------------------------------------------------------------------
Soup without data-* tags:
<html><body><ul>
<li>Owl</li>
<li>Salmon</li>
<li>Tarantula</li>
</ul></body></html>
--------------------------------------------------------------------------------