python - 如何在 python 中修改这个 html 文件?
问题描述
我想修改一个html文件,所以标签字体包含我要修改的文本
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE AHMED ILYES - Number 4
</font>
数字从 1 变为 128,所以我决定像这样使用 for n in range 循环(我在字符串的开头使用 f 来插值 n var):
old=d.findAll("font",{"color":"#FFFFFF"})
for n in range(129):
for i in old:
new=i.find(text=re.compile(f"PAT-204635 - LAICHE AHMED ILYES - Number {n}")).replace_with (f"PAT-204635 - LAICHE MOHAMED ISLAM - Number {n}")
with open ("c:/users/dell/desktop/se2.html","wb") as ff:
ff.write(d.prettify("utf-8"))
我收到一个错误:
AttributeError:“NonType”对象没有属性“replace_with”
我能够使用迭代变量 old 的相同方式更改 html 文件,但我无法将所有这些嵌套在范围循环中,关于如何做到这一点的任何想法或者是否有更简单的修改方法?
解决方案
根据我从您的问题中了解到的情况,您想替换
PAT-204635 - LAICHE AHMED ILYES - 编号 {n}
和
PAT-204635 - LAICHE MOHAMED ISLAM - 编号 {n}
你可以试试这个。
from bs4 import BeautifulSoup
import re
d = """
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE AHMED ILYES - Number 4
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE AHMED ILYES - Number 56
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE AHMED ILYES - Number 9
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE AHMED ILYES - Number 77
</font>
"""
soup = BeautifulSoup(d, 'lxml')
old = soup.findAll("font",{"color":"#FFFFFF"})
new= soup.find_all(text=re.compile(r"PAT-204635 - LAICHE AHMED ILYES - Number \d+\b"))
for i in new:
num = i.strip().split(' ')[-1]
i = i.replace_with (f"PAT-204635 - LAICHE MOHAMED ISLAM - Number {num}")
print(soup.prettify())
这就是最终 HTML 代码的样子。
<html>
<body>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE MOHAMED ISLAM - Number 4
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE MOHAMED ISLAM - Number 56
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE MOHAMED ISLAM - Number 9
</font>
<font color="#FFFFFF" face="Arial">
PAT-204635 - LAICHE MOHAMED ISLAM - Number 77
</font>
</body>
</html>
推荐阅读
- matlab - 我需要帮助在同一图上以不同颜色绘制 if/else 命令的不同排列
- hadoop - 资源管理器和节点管理器未启动
- python - 如何从列表中删除 unicode 中的 \xa0
- python - 如何比较多个文件,例如:比较第一个和第二个,然后使用 python 在循环内比较第二个和第三个?
- neo4j - 考虑到节点的标签已经存在,有没有办法在创建节点时自动创建关系?
- h2o - 如何对 Amazon SageMaker 训练作业控制台进行超参数化
- php - PHP 简单 HTML DOM 解析器 - 删除脚本数据
- javascript - 如何获取我的 API 请求以获取更新的数据库?
- docker - 无法备份 docker 卷
- php - php file_put_contents 保存在本地客户端真实路径