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:使用 string 获取和设置 HTML 标签内容


#Python BeautifulSoup


获取内容

以下是 string 的源码注释:

If this element has a single string child, return
value is that string. If this element has one child tag,
return value is the 'string' attribute of the child tag,
recursively. If this element is itself a string, has no
children, or has more than one child, return value is None.

示例:返回非 None

from bs4 import BeautifulSoup

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

content_div = soup.select_one("#content")
print(content_div.string)

执行结果:


    测试01

示例:返回非 None

from bs4 import BeautifulSoup

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

content_div = soup.select_one("#content")
print(content_div.string)

执行结果:

测试01

示例:返回为 None

from bs4 import BeautifulSoup

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

content_div = soup.select_one("#content")
print(content_div.string)

执行结果:

None

这里返回 None ,是因为<div id="content">内部,除了 <p>测试01</p> ,还有空字符串和换行。

示例:返回为 None

from bs4 import BeautifulSoup

html_content = '''
<div id="content">x
    <p>测试01</p>
    <span>测试02</span>
</div>
<div>测试03</div>
'''.strip()
soup = BeautifulSoup(html_content, 'html.parser')

content_div = soup.select_one("#content")
print(content_div.string)

执行结果:

None

设置内容

示例

from bs4 import BeautifulSoup

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

content_div = soup.select_one("#content")
content_div.string = 'xx'

print(soup)

执行结果:

<div id="content">xx</div>
<div>测试03</div>


( 本文完 )