Python BeautifulSoup修改HTML的方法
BeautifulSoup是一个Python库,用于从HTML和XML文件中提取数据。它也可以用于修改HTML和XML文件。以下是Python BeautifulSoup修改HTML的方法:
- 导入BeautifulSoup库
from bs4 import BeautifulSoup
- 读取HTML文件并创建BeautifulSoup对象
with open("example.html", "r") as f: html = f.read() soup = BeautifulSoup(html, "html.parser")
- 找到要修改的HTML元素
# 找到第一个a标签 a_tag = soup.find("a") # 找到所有的a标签 a_tags = soup.find_all("a")
- 修改HTML元素的属性
# 修改a标签的href属性 a_tag["href"] = "https://pidancode.com" # 修改a标签的文本内容 a_tag.string = "皮蛋编程"
- 添加新的HTML元素
# 创建一个新的a标签 new_a_tag = soup.new_tag("a") new_a_tag["href"] = "https://pidancode.com" new_a_tag.string = "皮蛋编程" # 在body标签中添加新的a标签 body_tag = soup.find("body") body_tag.append(new_a_tag)
- 保存修改后的HTML文件
with open("new.html", "w") as f: f.write(str(soup))
完整代码演示:
from bs4 import BeautifulSoup with open("example.html", "r") as f: html = f.read() soup = BeautifulSoup(html, "html.parser") # 修改第一个a标签的属性和文本内容 a_tag = soup.find("a") a_tag["href"] = "https://pidancode.com" a_tag.string = "皮蛋编程" # 创建一个新的a标签并添加到body中 new_a_tag = soup.new_tag("a") new_a_tag["href"] = "https://pidancode.com" new_a_tag.string = "皮蛋编程" body_tag = soup.find("body") body_tag.append(new_a_tag) # 保存修改后的HTML文件 with open("new.html", "w") as f: f.write(str(soup))
修改前的example.html文件:
<!DOCTYPE html> <html> <head> <title>Example</title> </head> <body> <div> <p>这是一个例子</p> <a href="https://www.google.com">Google</a> <a href="https://www.baidu.com">Baidu</a> </div> </body> </html>
修改后的new.html文件:
<!DOCTYPE html> <html> <head> <title>Example</title> </head> <body> <div> <p>这是一个例子</p> <a href="https://pidancode.com">皮蛋编程</a><a href="https://www.baidu.com">Baidu</a><a href="https://pidancode.com">皮蛋编程</a></div> </body> </html>
可以看到,第一个a标签的href属性和文本内容都被修改了,同时还添加了一个新的a标签到body标签中。
相关文章