2016-11-23 67 views
-1

我想使用Beautifulsoup修改HTML的整個div。我試圖修改HTML,但是控制檯輸出有修改,但實際的.html文檔本身沒有修改。沒有新的HTML被創建。使用BeautifulSoup修改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

你嘗試保存該文件? 'from __future__ import print_function print(「hi there」,file = f)' – paragbaxi

回答

0

兩件事情:

  1. 您需要添加一些代碼從BeautifulSoup輸出寫回文件。
  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"))