#Python BeautifulSoup# 文章列表 Python BeautifulSoup 简介 Python BeautifulSoup 安装 Python BeautifulSoup:根据 HTML 标签名获取元素 Python BeautifulSoup:根据 class 获取元素 Python BeautifulSoup:根据 id 获取元素 Python BeautifulSoup:使用 name 获取 HTML 标签名 Python BeautifulSoup:使用 get_text 获取 HTML 标签文本内容 Python BeautifulSoup:使用 attrs 处理 HTML 标签属性 Python BeautifulSoup:使用 decode_contents 获取 HTML 标签嵌套的 HTML 内容 Python BeautifulSoup:嵌套获取元素 Python BeautifulSoup:使用 find 和 find_all 查找元素 Python BeautifulSoup:使用 select_one 和 select 查找元素 Python BeautifulSoup:使用 append 追加内容 Python BeautifulSoup:使用 insert 插入内容 Python BeautifulSoup:使用 clear 清空内容 Python BeautifulSoup:设置内容 Python BeautifulSoup:使用 string 获取和设置 HTML 标签内容 Python BeautifulSoup:使用 extract 删除 HTML 标签 Python BeautifulSoup:使用 prettify 格式化 HTML Python BeautifulSoup:获取前后的同级元素 Python BeautifulSoup:使用 find_previous、find_next 获取当前元素前后的元素 Python BeautifulSoup:使用 find_parent 获取父元素 Python BeautifulSoup:使用 wrap 为元素增加父元素 Python BeautifulSoup 实战:去除 HTML 中的注释 Python BeautifulSoup 实战:去除 HTML 中的 script Python BeautifulSoup 实战:解析 oschina 首页内容 Python BeautifulSoup 实战:解析微信公众号文章列表 Python BeautifulSoup 实战:替换 href 属性内容

Python BeautifulSoup:使用 attrs 处理 HTML 标签属性


#Python BeautifulSoup#


简介

可以通过 attrs 获取和修改属性。

示例:获取属性值

代码:

from bs4 import BeautifulSoup

html_content = '''
<div id="content" data="你好">测试01</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')

content_div = soup.select_one("#content")
print(content_div)
print('name:', content_div.name)
print('attrs.data:', content_div.attrs['data'])
print('text:', content_div.get_text())

执行结果:

<div data="你好" id="content">测试01</div>
name: div
attrs.data: 你好
text: 测试01

示例:判断有无某个属性

from bs4 import BeautifulSoup

html_content = '''
<div id="content" data="你好">测试01</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')

content_div = soup.select_one("#content")
has_data_attr = 'data' in content_div.attrs
print('是否有 data 属性:', has_data_attr)
has_href_attr = 'href' in content_div.attrs
print('是否有 href 属性:', has_href_attr)

执行结果:

是否有 data 属性: True
是否有 href 属性: False

示例:修改属性值

from bs4 import BeautifulSoup

html_content = '''
<div id="content" data="你好">测试01</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')
print('------处理前-----')
print(soup)

print('------修改 data 属性-----')
content_div = soup.select_one("#content")
print('当前data 属性:', content_div.attrs['data'])
content_div.attrs['data'] = 'zz'

print('------处理后-----')
print(soup)

执行结果:

------处理前-----
<div data="你好" id="content">测试01</div>
<div>测试03</div>
------修改 data 属性-----
当前data 属性: 你好
------处理后-----
<div data="zz" id="content">测试01</div>
<div>测试03</div>

示例:添加属性值

from bs4 import BeautifulSoup

html_content = '''
<div id="content" data="你好">测试01</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')
print('------处理前-----')
print(soup)

print('------添加 data 属性-----')
content_div = soup.select_one("#content")
content_div.attrs['data2'] = 'zz'

print('------处理后-----')
print(soup)

执行结果:

------处理前-----
<div data="你好" id="content">测试01</div>
<div>测试03</div>
------添加 data 属性-----
------处理后-----
<div data="你好" data2="zz" id="content">测试01</div>
<div>测试03</div>

示例:删除属性值

from bs4 import BeautifulSoup

html_content = '''
<div id="content" data="你好">测试01</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')
print('------处理前-----')
print(soup)

print('------删除 data 属性-----')
content_div = soup.select_one("#content")
del content_div.attrs['data']

print('------处理后-----')
print(soup)

执行结果:

------处理前-----
<div data="你好" id="content">测试01</div>
<div>测试03</div>
------删除 data 属性-----
------处理后-----
<div id="content">测试01</div>
<div>测试03</div>

( 本文完 )