Python BeautifulSoup修改HTML的方法

2023-04-17 00:00:00 python 修改 方法

BeautifulSoup是一个Python库,用于从HTML和XML文件中提取数据。它也可以用于修改HTML和XML文件。以下是Python BeautifulSoup修改HTML的方法:

  1. 导入BeautifulSoup库
from bs4 import BeautifulSoup
  1. 读取HTML文件并创建BeautifulSoup对象
with open("example.html", "r") as f:
    html = f.read()

soup = BeautifulSoup(html, "html.parser")
  1. 找到要修改的HTML元素
# 找到第一个a标签
a_tag = soup.find("a")

# 找到所有的a标签
a_tags = soup.find_all("a")
  1. 修改HTML元素的属性
# 修改a标签的href属性
a_tag["href"] = "https://pidancode.com"

# 修改a标签的文本内容
a_tag.string = "皮蛋编程"
  1. 添加新的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)
  1. 保存修改后的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标签中。

相关文章