我正在尝试使用美丽的汤来修改python中的每个标签。有一堆不同的td标签,我试图将每个带有某个属性的td标签转换为其他标签。例如,有
<td class="station"> ... </td>
上面的标签我不想改变,但是有
<td class="menuitem"> ... </td>
我想修改所有这些
<td class="menuitem"> ... </td>
类似
<body class="menuitem"> ... </body>
只是为了澄清我想要每一个
<td class="menuitem"> ... </td>
改变了,而不仅仅是第一个。
预先感谢您的帮助!! :)
答案 0 :(得分:2)
我相信我会这样做:
for tag in soup.select('td.menuitem'):
tag.name = 'body' # mutates the tag in `soup`!
(在这里使用css选择器,相当于soup.find_all('td', attrs={'class':'menuitem'})
)
演示:
s = '''<td class="station"> no touchies </td><td class="menuitem"> foo </td><td class="menuitem"> bar </td><td class="menuitem"> baz </td>'''
soup = BeautifulSoup(s)
soup
Out[111]: <html><body><td class="station"> no touchies </td><td class="menuitem"> foo </td><td class="menuitem"> bar </td><td class="menuitem"> baz </td></body></html>
for tag in soup.select('td.menuitem'):
tag.name = 'body'
soup
Out[113]: <html><body><td class="station"> no touchies </td><body class="menuitem"> foo </body><body class="menuitem"> bar </body><body class="menuitem"> baz </body></body></html>