我有几个像
这样的标签<span attrib="5_5"> <font size="3">Text:Hello World </font> </span>
<span attrib="5_5"> <font size="1">Text_Hello New World </font> </span>
与此同时,有些人不想要字体......所以他们没有它
<span attrib="5_5"> Text:Hello World </span>
<span attrib="5_5"> Text_Hello New World </span>
我需要将所有这些转换为
<font size="3">Test_Hello_World_5_5</font>
<font size="1">Text_Hello_New_World_5_5</font
我如何在 BeautifulSoup 中执行此操作?我可以做一个正则表达式并替换文本,但我丢失了字体。我需要保留 child ,并在同一个循环中用 regex 重新放置内部文本。谁能告诉我该怎么做?基本上我想要一个 each.replaceWithChildren,然后在同一个循环中更改 each.text ...,因为我不能丢失上下文。 5_5 是来自父 span 属性的数字。
在伪代码中我想要这样的东西:
span 是所有 span 标签的精美集合。
for each in span:
span.replaceWithChildren()
each.text = something
请您参考如下方法:
像这样:
for x in doc.findAll('span'):
s = x["attrib"]
t = x.find('font')
t.string = t.text.strip() + '_' + s
x.replaceWithChildren()
更新:
t = x.find('font')
if not t:
x.string += s
else:
t.string += s
x.replaceWithChildren()
