一、方法描述
在 BeautifulSoup 库中,insert_before()
方法会在解析树中的某个元素之前立即插入标签或字符串。插入的元素成为当前元素的直接前驱。插入的元素可以是标签或字符串。
二、语法
insert_before(*args)
三、参数
四、返回值
insert_before()
方法不会返回任何新的对象。
五、示例
示例 1
下面的示例在给定的 HTML 标记字符串中的 "Excellent"
前插入文本 "Here is an "
。
from bs4 import BeautifulSoup, NavigableString
markup = '<b>Excellent</b> Python Tutorial <u>from Yoagoa</u>'
soup = BeautifulSoup(markup, 'html.parser')
tag = soup.b
tag.insert_before("Here is an ")
print(soup.prettify())
输出:
Here is an
<b>
Excellent
</b>
Python Tutorial
<u>
from Yoagoa
</u>
示例 2
您也可以在另一个标签之前插入一个标签。请看下面的示例。
from bs4 import BeautifulSoup, NavigableString
markup = '<P>Excellent <b>Tutorial</b> from Yoagoa</u>'
soup = BeautifulSoup(markup, 'html.parser')
tag = soup.b
tag1 = soup.new_tag('b')
tag1.string = "Python "
tag.insert_before(tag1)
print(soup.prettify())
输出:
<p>
Excellent
<b>
Python
</b>
<b>
Tutorial
</b>
from Yoagoa
</p>
示例 3
下面的代码传递了多个字符串以在 <b>
标签之前插入。
from bs4 import BeautifulSoup
markup = '<p>There are <b>Tutorials</b> <u>from Yoagoa</u></p>'
soup = BeautifulSoup(markup, 'html.parser')
tag = soup.b
tag.insert_before("many ", 'excellent ')
print(soup.prettify())
输出:
<p>
There are
many
excellent
<b>
Tutorials
</b>
<u>
from Yoagoa
</u>
</p>