2016-11-10 15 views
6

Modyfikuję plik html usuwając część tagu za pomocą beautifulsoup, następnie chcę zapisać wyniki z powrotem w pliku html. mój kod:python BeautifulSoup Jak napisać wynik do pliku html

from bs4 import BeautifulSoup 
from bs4 import Comment 

soup = BeautifulSoup(open('1.html'),"html.parser") 

[x.extract() for x in soup.find_all('script')] 
[x.extract() for x in soup.find_all('style')] 
[x.extract() for x in soup.find_all('meta')] 
[x.extract() for x in soup.find_all('noscript')] 
[x.extract() for x in soup.find_all(text=lambda text:isinstance(text, Comment))] 
html =soup.contents 
for i in html: 
    print i 

html = soup.prettify("utf-8") 
with open("output1.html", "wb") as file: 
    file.write(html) 

ale ponieważ używam soup.prettify, generuje html jak ten

<p> 
    <strong> 
    BATAM.TRIBUNNEWS.COM, BINTAN 
    </strong> 
    - Tradisi pedang pora mewarnai serah terima jabatan pejabat di 
    <a href="http://batam.tribunnews.com/tag/polres/" title="Polres"> 
    Polres 
    </a> 
    <a href="http://batam.tribunnews.com/tag/bintan/" title="Bintan"> 
    Bintan 
    </a> 
    , Senin (3/10/2016). 
    </p> 

ale muszę uzyskać wynik podobny do druku robię. w następujący sposób:

<p><strong>BATAM.TRIBUNNEWS.COM, BINTAN</strong> - Tradisi pedang pora mewarnai serah terima jabatan pejabat di <a href="http://batam.tribunnews.com/tag/polres/" title="Polres">Polres</a> <a href="http://batam.tribunnews.com/tag/bintan/" title="Bintan">Bintan</a>, Senin (3/10/2016).</p> 
<p>Empat perwira baru Senin itu diminta cepat bekerja. Tumpukan pekerjaan rumah sudah menanti di meja masing masing.</p> 

, więc jak zrobić wynik jest dokładnie taki sam jak wydrukować i. więc tag i jego zawartość będą znajdować się w tej samej linii. Dzięki

Odpowiedz

15

Wystarczy konwersji instancji soup ciąg i napisz:

with open("output1.html", "w") as file: 
    file.write(str(soup)) 
Powiązane problemy