使用 Beautiful Soup python

问题描述

给定以下代码

    html_code = '<table id="deFinition-table"><tbody><tr><td>' \
                '<p><b><i><span class="lang">*Reporter&#39;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 正在用相应的单引号替换 &#39;,因此最后的替换调用找不到要替换的字符串(它搜索 {{ 1}} 而不是 *Reporter's name:。我试过 *Reporter&#39;s name: 但在 html 代码中有 tag.replace_with(new_tag) 多次,我不知道如何找到我需要替换的那个。>

任何人都可以改进我的代码,使其无论 html 代码使用 <span class="lang"> 还是 *Reporter&#39;s name: 都能正常工作? (即使用 Beautiful Soup 的替换函数而不是字符串替换) 谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)