我正在编写一个脚本,使用 Beautiful Soup 4 用新的 HTML 5 音频/视频元素替换旧的 Flash 音频/视频元素,但是我很难创建以下格式的音频标签:
<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.prettify(formatter=None) 但是脚本不断因 ascii 错误而崩溃...