我想使用Beautifulsoup来修改HTML的整个div
。我试图修改HTML,但是控制台输出有修改,但实际的.html文档本身没有修改。没有创建新的HTML。
有人可以帮助我吗?
from bs4 import BeautifulSoup,Tag
import re
import urllib2
import os.path
base=os.path.dirname(os.path.abspath(__file__))
html=open(os.path.join(base,'example.html'))
soup=BeautifulSoup(html,'html.parser')
for i in soup.find('div',{"id":None}).findChildren():
l=str(i);
print l
print l.replace(l,'##')
答案 0 :(得分:2)
两件事:
replace_with()
对HTML进行更改。通过转换为字符串,您只需修改文本副本。这可以按如下方式完成:
from bs4 import BeautifulSoup
import urllib2
import re
import os
base = os.path.dirname(os.path.abspath(__file__))
html = open(os.path.join(base, 'example.html'))
soup = BeautifulSoup(html, 'html.parser')
for i in soup.find('div', {"id":None}).findChildren():
i.replace_with('##')
with open("example_modified.html", "wb") as f_output:
f_output.write(soup.prettify("utf-8"))