📌  相关文章
📜  使用 BeautifulSoup 在指定标签前后插入标签或字符串

📅  最后修改于: 2022-05-13 01:55:38.583000             🧑  作者: Mango

使用 BeautifulSoup 在指定标签前后插入标签或字符串

BeautifulSoup 是一个Python库,用于从 HTML、XML 等标记语言中提取数据。例如,假设我们有一些网页需要显示与某些研究相关的相关数据,例如处理日期或地址等信息,但无法下载,在这种情况下,BeautifulSoup 对我们来说很方便,因为它有帮助我们从 HTML 页面中提取特定内容并保存信息。 BeautifulSoup 是一种有效的网络抓取工具,有助于清理和解析从网络上提取的文档。

安装所需的库:

  • bs4:由于Python默认不提供 BeautifulSoup,我们需要使用下面的命令和 pip 将它安装在我们的机器上。
pip install bs4
  • lxml: lxml 是 Pythonic libxml2 和 libxlst 库的成熟绑定,借助 ElementTree API,它提供了对这些库的安全和方便的访问。
pip install lxml 

使用的功能:

  • tag(): Python实现,用于在使用 BeautifulSoup 的指定标签之前插入标签或字符串。
  • insert(): BeautifulSoup中的insert()函数用于向标签对象中插入元素,类似于Python列表中的.inert()。
  • insert_before(): insert_before() 方法在解析树中的其他内容之前立即插入标签或字符串。
  • insert_after(): insert_after 方法在给定解析树中的其他内容之后插入标签或字符串。

循序渐进的方法:

  • 首先,我们使用 bs4 导入 BeautifulSoup 库。
  • 我们为 BeautifulSoup 分配一个属性,并用我们试图实现我们的程序的源 url 填充它。
  • 我们使用 new_tag() 在标签对象中分配一个新元素。
  • 我们为标签对象分配一个字符串以将我们的标签附加到它之前或之后(如指定的那样)。
  • 我们使用 insert_before()函数在字符串之前插入标签。

执行:

示例 1:使用 BeautifulSoup 在指定标签之前插入标签或字符串的Python实现。

Python3
# import module
from bs4 import BeautifulSoup
  
# assign URL
s = BeautifulSoup("www.geeksforgeeks.com", 
                  "lxml")
  
print("Original Markup:")
print(s.b)
  
# insert tag
tag = s.new_tag("k")
tag.string = "Python"
  
print("\nNew Markup, before inserting the text:")
s.b.string.insert_before(tag)
print(s.b)


Python3
# import module
from bs4 import BeautifulSoup
  
# assign URL
s = BeautifulSoup("www.geeksforgeeks.com", 
                  "lxml")
  
print("Original Markup:")
print(s.b)
  
# insert tag
tag = s.new_tag("k")
tag.string = "Python"
  
print("\nNew Markup, before inserting the text:")
s.b.string.insert_after(tag)
print(s.b)


输出:



示例 2:这是在指定标签后插入标签或字符串的另一个实现。

蟒蛇3

# import module
from bs4 import BeautifulSoup
  
# assign URL
s = BeautifulSoup("www.geeksforgeeks.com", 
                  "lxml")
  
print("Original Markup:")
print(s.b)
  
# insert tag
tag = s.new_tag("k")
tag.string = "Python"
  
print("\nNew Markup, before inserting the text:")
s.b.string.insert_after(tag)
print(s.b)

输出: