【问题标题】:How do I set a BeautifulSoup attribute while preserving HTML entities?如何在保留 HTML 实体的同时设置 BeautifulSoup 属性?
【发布时间】:2020-01-25 18:18:09
【问题描述】:

设置:

from bs4 import BeautifulSoup

soup = BeautifulSoup('<img/>', 'html.parser')

我需要做以下事情:

soup.img['src'] = 'url?x=1&y=2'

期望的行为:

print(soup)
<img src="url?x=1&y=2"/>

实际行为:

print(soup)
<img src="url?x=1&amp;y=2"/>

一般来说,如何将Tag 属性设置为我传入的文字字符串?

【问题讨论】:

标签: python html beautifulsoup


【解决方案1】:

您的src 属性确实存储为'url?x=1&amp;y=2',但是,当您执行print(soup) 时,BeautifulSoup 会应用格式/转义以避免创建可能不正确的 HTML。如果您希望它不这样做,那么您可以显式声明它,例如:

print(soup.decode(formatter=None))

参考:Output formatters

【讨论】:

    【解决方案2】:

    &amp;amp; 只是一个&amp;;尝试做这样的事情:

    soup.img['src'].replace('&amp;','&')
    

    输出:

    'url?x=1&y=2'

    【讨论】:

      猜你喜欢
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2019-12-15
      • 2022-01-01
      • 1970-01-01
      • 2017-12-24
      相关资源
      最近更新 更多