问题描述
给定以下代码:
html_code = '<table id="deFinition-table"><tbody><tr><td>' \
'<p><b><i><span class="lang">*Reporter's name:</span></i></b></p>' \
'</td><td>John Doe</td></tr></tbody></table>'
soup = BeautifulSoup(html_code,"html.parser")
for tag in soup.findAll("span",{"class": "lang"}):
tag_to_replace = str(tag)
key = generate_key_from_name(tag.string)
tag['key'] = key
new_tag = str(tag)
html_code.replace(tag_to_replace,new_tag)
所以基本上我需要在带有 span
属性的 html 代码中找到所有 class="lang"
标签,并添加/更新具有函数 generate_key_from_name
给出的值的属性键,它返回一个简单的字符串。这段代码过去一直运行良好,直到我进入下面的示例,因为 Beautiful Soup 正在用相应的单引号替换 '
,因此最后的替换调用找不到要替换的字符串(它搜索 {{ 1}} 而不是 *Reporter's name:
。我试过 *Reporter's name:
但在 html 代码中有 tag.replace_with(new_tag)
多次,我不知道如何找到我需要替换的那个。>
任何人都可以改进我的代码,使其无论 html 代码使用 <span class="lang">
还是 *Reporter's name:
都能正常工作? (即使用 Beautiful Soup 的替换函数而不是字符串替换)
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)