gpt4 book ai didi

python - 如何使用 Beautiful Soup 将 HTML 5 音频标签添加到 HTML 文档

转载 作者:行者123 更新时间:2023-11-28 01:15:22 25 4
gpt4 key购买 nike

我正在编写一个脚本,使用 Beautiful Soup 4 将旧的 Flash 音频/视频元素替换为新的 HTML 5 音频/视频元素,但是我在创建以下格式的音频标签时遇到了困难:

<audio controls>
<source src="../../files/audios/333/MP3File.mp3" type="audio/mpeg">
</audio>

我尝试在 Python Interpreter 中使用它,但一无所获。

>>> soup = BeautifulSoup("<html></html>")
>>> nextsoup = soup.new_tag("<audio controls></audio>")


>>> nextsoup
<<audio controls></audio>></<audio controls></audio>>
>>> nextsoup = soup.new_tag("audio")
>>> nextsoup
<audio></audio>

>>> nextsoup = soup.new_tag("audio")
>>> nextsoup = soup.new_tag("audio", "controls")
>>> nextsoup
<audio></audio>
>>> nextsoup["controls"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  line 958, in __getitem__
    return self.attrs[key]
KeyError: 'controls'
>>> nextsoup["controls"] = ""
>>> nextsoup

<audio controls=""></audio>

那么有没有办法向音频添加“控件”,或者我应该使用其他库吗?还有一种方法可以指定没有结束标记的标记,例如带有源标记的标记吗?

我也尝试过将元素添加为 NavigableStrings 并将它们附加到它们应该在的位置但是我在编码方面遇到了问题,所以我然后尝试指定编码格式 - utf-8 然后指定 soup.pretify(formatter=无)但脚本不断因 ascii 错误而崩溃...

最佳答案

传递 controls 关键字参数并将值设置为 None:

>>> audio = soup.new_tag("audio", controls=None)
>>> audio.append(soup.new_tag("source", src="path", type="audio/mpeg"))
>>> soup.append(audio)
>>> print(audio.prettify())
<audio controls>
<source src="path" type="audio/mpeg">
</source>
</audio>

关于python - 如何使用 Beautiful Soup 将 HTML 5 音频标签添加到 HTML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com