Beautiful Soup - new_tag() 方法



Beautiful Soup 庫中的 new_tag() 方法建立一個新的 Tag 物件,該物件與現有的 BeautifulSoup 物件相關聯。您可以使用此工廠方法將新標籤附加或插入到文件樹中。

語法

new_tag(name, namespace, nsprefix, attrs, sourceline, sourcepos, **kwattrs)

引數

  • name − 新標籤的名稱。

  • namespace − 新標籤的 XML 名稱空間的 URI,可選。

  • prefix − 新標籤的 XML 名稱空間的字首,可選。

  • attrs − 此標籤的屬性值的字典。

  • sourceline − 在其源文件中找到此標籤的行號。

  • sourcepos − 在 `sourceline` 中找到此標籤的字元位置。

  • kwattrs − 新標籤的屬性值的關鍵字引數。

返回值

此方法返回一個新的 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.tutorialspoint.com"
tag.string = "Tutorialspoint"
soup.b.insert_before(tag)
print (soup)

輸出

<p>Welcome to <a href="www.tutorialspoint.com">Tutorialspoint</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>
廣告