我正在使用Python中的BeautifulSoup将大量HTML文件批量转换为XML.
示例HTML文件如下所示:
我想出了如何找到doctype并将其替换为标签< doctype> …< / doctype>,但评论给了我很多挫折感.我想用< comment> …< / comment>替换HTML评论.在这个示例HTML中,我能够替换前两个HTML注释,但是html标记内的任何内容和关闭html标记之后的最后一个注释我都没有.
这是我的代码:
file = open ("sample.html","r")
soup = BeautifulSoup(file,"xml")
for child in soup.children:
# This takes care of the first two HTML comments
if isinstance(child,bs4.Comment):
child.replace_with("
这是我第一次使用BeautifulSoup.如何使用BeautifulSoup查找和替换所有HTML注释< comment>标签?
我可以将它转换为字节流,通过pickle,序列化,应用正则表达式,然后将其解除回一个BeautifulSoup对象?这会起作用还是只会导致更多问题?
我尝试在子标记对象上使用pickle但反序列化因TypeError而失败:__ new __()缺少1个必需的位置参数:’name’.
然后我尝试通过child.text对标签的文本进行腌制,但由于AttributeError,反序列化失败:无法设置属性.基本上,child.text是只读的,这解释了为什么正则表达式不起作用.所以,我不知道如何修改文本.
最佳答案