Python BeautifulSoup 修改 HTML
如何使用 Python BeautifulSoup 修改 HTML?
安装 BeautifulSoup:
pip install beautifulsoup4
在 Python 中使用 BeautifulSoup 首先要对 HTML 进行解析。使用 BeautifulSoup
可以从 HTML 解析出一个 BeautifulSoup 对象。可以使用以下方式将 HTML 文件读取进来:
from bs4 import BeautifulSoup #读取 HTML 文件 with open("sample.html") as file: soup = BeautifulSoup(file, 'html.parser')
如果需要修改 sample.html
文件中某一个标签内的文本内容,则需找到需要修改的标签。可以使用 find
或 find_all
方法来查找标签。
find
方法返回第一个匹配的标签,find_all
方法返回所有匹配的标签组成的列表。
简单实例:修改 title
例子中,请先将命名为sample.html
的文件保存到程序当前工作目录中。
示例 HTML 文件内容:
<!DOCTYPE html> <html> <head> <title>pidancode.com</title> </head> <body> <h1>Hello, BeautifulSoup</h1> <p>Welcome to pidancode.com</p> </body> </html>
现在我们需要将 title 的内容修改为 皮蛋编程
。代码示例如下:
from bs4 import BeautifulSoup #读取 HTML 文件 with open("sample.html") as file: soup = BeautifulSoup(file, 'html.parser') #找到 title 标签 title_tag = soup.find("title") #修改 title 的内容 title_tag.string = "皮蛋编程" #打印结果 print(soup)
以上代码找到 HTML 中的 title 标签,然后修改其内容为“皮蛋编程”。最后打印结果。
输出:
<!DOCTYPE html> <html> <head> <title>皮蛋编程</title> </head> <body> <h1>Hello, BeautifulSoup</h1> <p>Welcome to pidancode.com</p> </body> </html>
可以看到 title 的内容已经被修改。
简单实例:修改 p 标签
如果需要修改 p 标签内的文本,可以使用与上面相同的方式。
代码示例:
from bs4 import BeautifulSoup #读取 HTML 文件 with open("sample.html") as file: soup = BeautifulSoup(file, 'html.parser') #找到 p 标签 p_tag = soup.find("p") #修改 p 标签内的文本 p_tag.string = "Welcome to 皮蛋编程" #打印结果 print(soup)
输出:
<!DOCTYPE html> <html> <head> <title>pidancode.com</title> </head> <body> <h1>Hello, BeautifulSoup</h1> <p>Welcome to 皮蛋编程</p> </body> </html>
可以看到 p 标签内的文本已经被修改为“Welcome to 皮蛋编程”。
简单实例:添加新标签
如果需要添加新的标签,可以使用 new_tag
方法创建一个新标签,并使用 append
或 insert
方法将其添加至 HTML 中。
代码示例:
from bs4 import BeautifulSoup #读取 HTML 文件 with open("sample.html") as file: soup = BeautifulSoup(file, 'html.parser') #创建新标签 new_tag = soup.new_tag("a") new_tag.string = "Go to pidancode.com" new_tag["href"] = "http://pidancode.com" #将新标签添加到 body 中 soup.body.append(new_tag) #打印结果 print(soup)
输出:
<!DOCTYPE html> <html> <head> <title>pidancode.com</title> </head> <body> <h1>Hello, BeautifulSoup</h1> <p>Welcome to 皮蛋编程</p> <a href="http://pidancode.com">Go to pidancode.com</a> </body> </html>
可以看到,新标签 a 已经被成功添加到了 HTML 中。
简单实例:删除标签
如果需要删除某一个标签,可以直接使用 extract
方法,将其从 HTML 中删除。
代码示例:
from bs4 import BeautifulSoup #读取 HTML 文件 with open("sample.html") as file: soup = BeautifulSoup(file, 'html.parser') #找到需要删除的标签 p_tag = soup.find("p") #将标签从 HTML 中删除 p_tag.extract() #打印结果 print(soup)
输出:
<!DOCTYPE html> <html> <head> <title>pidancode.com</title> </head> <body> <h1>Hello, BeautifulSoup</h1> </body> </html>
可以看到 p 标签已经被从 HTML 中成功删除。
相关文章