gpt4 book ai didi

python - 在 BeautifulSoup 中用另一种标签替换一种标签

转载 作者:太空狗 更新时间:2023-10-29 15:01:06 26 4
gpt4 key购买 nike

我有一组 HTML 文件。我希望一个一个地迭代它们,编辑特定类的标记。我希望编辑的代码具有以下形式,使用以下类名:

<td class='thisIsMyClass' colspan=4>
<a id='123' class='thisIsMyOtherClass' href='123'>Put me Elsewhere</a>

这可以在同一个文档中多次出现,使用不同的文本而不是“把我放在别处”,但总是相同的类。

我想将其更改为以下形式:

<font SIZE="3"  COLOR="#333333"  FACE="Verdana"  STYLE="background-color:#ffffff;font-weight: bold;">
<h2>Put Me Elsewhere</h2>
</font>
import os
for filename in os.listdir('dirname'):
replace(filename)

def replace(filename):
tags = soup.find_all(attrs={"thisIsMyClass"})

在此之后我可以尝试什么,我该如何处理标签数组?

最佳答案

更好、更漂亮的方法是准备一个带有占位符的替换 HTML 字符串,找到所有带有 thisIsMyClass 类的 td 标签并使用.replace_with()替换每个:

from bs4 import BeautifulSoup

data = """
<table>
<tr>
<td class='thisIsMyClass' colspan=4>
<a id='123' class='thisIsMyOtherClass' href='123'>Put me Elsewhere</a>
</td>
</tr>
</table>
"""

replacement = """
<font SIZE="3" COLOR="#333333" FACE="Verdana" STYLE="background-color:#ffffff;font-weight: bold;">
<h2>{text}</h2>
</font>
"""

soup = BeautifulSoup(data, 'html.parser')
for td in soup.select('td.thisIsMyClass'):
td.replace_with(BeautifulSoup(replacement.format(text=td.a.text), 'html.parser'))

print soup.prettify()

打印:

<table>
<tr>
<font color="#333333" face="Verdana" size="3" style="background-color:#ffffff;font-weight: bold;">
<h2>
Put me Elsewhere
</h2>
</font>
</tr>
</table>

关于python - 在 BeautifulSoup 中用另一种标签替换一种标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com