一、方法描述
在 BeautifulSoup 库中,new_tag()
方法创建了一个与现有 BeautifulSoup 对象关联的新 Tag 对象。您可以使用这个工厂方法将新标签追加或插入到文档树中。
二、语法
new_tag(name, namespace, nsprefix, attrs, sourceline, sourcepos, **kwattrs)
三、参数
-
-
namespace
:新 Tag 的 XML 命名空间的 URI,可选。
-
prefix
:新 Tag 的 XML 命名空间的前缀,可选。
-
-
sourceline
:在源文档中找到该标签的行号。
-
sourcepos
:在 sourceline
中找到该标签的字符位置。
-
kwattrs
:新 Tag 的属性值的关键字参数。
四、返回值
此方法返回一个新的 Tag 对象。
五、示例
示例 1
下面的例子展示了 new_tag()
方法的使用。创建了一个 <a>
元素的新标签。该标签对象被初始化为具有 href
和 string
属性,然后插入到文档树中。
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>Welcome to <b>online Tutorial library</b></p>', 'html.parser')
tag = soup.new_tag('a')
tag.attrs['href'] = "www.yoagoa.com"
tag.string = "Yoagoa"
soup.b.insert_before(tag)
print(soup)
输出:
<p>Welcome to <a href="www.yoagoa.com">Yoagoa</a><b>online Tutorial library</b></p>
示例 2
在下面的例子中,我们有一个包含两个输入元素的 HTML 表单。我们创建了一个新的输入标签并将其追加到表单标签。
html = '''
<form>
<input type = 'text' id = 'nm' name = 'name'>
<input type = 'text' id = 'age' name = 'age'>
</form>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
tag = soup.form
newtag = soup.new_tag('input', attrs={'type':'text', 'id':'marks', 'name':'marks'})
tag.append(newtag)
print(soup)
输出:
<form>
<input id="nm" name="name" type="text"/>
<input id="age" name="age" type="text"/>
<input id="marks" name="marks" type="text"/></form>
示例 3
这里我们在 HTML 字符串中有一个空的 <p>
标签。在其中插入了一个新的标签。
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p></p>', 'html.parser')
tag = soup.new_tag('b')
tag.string = "Hello World"
soup.p.insert(0,tag)
print(soup)
输出:
<p><b>Hello World</b></p>