我有一组html文件.我希望逐个迭代它们,编辑特定类的标记.我想编辑的代码具有以下形式,使用以下类名:
<td class='thisIsMyClass' colspan=4>
<a id='123' class='thisIsMyOtherClass' href='123'>Put me Elsewhere</a>
这可以在同一个文档中多次出现,使用不同的文本而不是“Put me Elsewhere”,但总是使用相同的类.
我想将其更改为以下形式:
<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标记,并使用
替换每个:
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>