2011-05-20 42 views
3

我想将html打印到文档中,但我想将其格式化为在网页中查看的格式。我可以打印HTML,因为它可以在没有python标签的网页中查看吗?

我有以下代码:

from BeautifulSoup import BeautifulSoup, NavigableString 

html = """ 
<B>THIS IS A TABLE</B> 
</div> 

<center> 
<table width="100%" align="center" cellspacing="0" cellpadding="0" border="0" style="font-size: 10pt; margin-top: 6pt; "> 

<tr style="font-size: 7pt;"> 
    <td colspan="2" align="left" nowrap><B>THIS IS A HEADER1</B></td> 
    <td>&nbsp;</td> 
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER2</B></td> 
    <td>&nbsp;</td> 
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER3</B></td> 
    <td>&nbsp;</td> 
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER4</B></td> 
    <td>&nbsp;</td> 
</tr> 

</table> 
""" 

soup = BeautifulSoup(''.join(html)) 

tmp.open('tmp.txt','w') 
tmp.write(soup) 
tmp.close() 

但这打印出带有标签的HTML。任何方式在Python中做到这一点?

回答

3

假设你真的想写这是一个文本文件,你可以考虑使用lynx作为渲染HTML文本。

如果您只是想打开您编写的html文件,并使其看起来与网络浏览器完全一样,我建议将它保存为tmp.html并使用网络浏览器打开它。

+1

我可以将它保存为一个html文件并在网络浏览器中打开它,但是我将把数千个这样的表添加到文档中,我宁愿能够在一个文本文档中将它们全部打开。 – user728166 2011-05-20 12:44:10

+1

现在我想到了,只要将它保存为html文件并在网络浏览器中打开它就可以很好地工作。我应该能够将所有表格追加到html文件中,并打开并在网络浏览器中一次查看它们。谢谢!有时候它是最好的简单答案。 – user728166 2011-05-20 14:45:32

0
... 
tmp.write(cgi.escape(soup.renderContents())) 
+0

这没有奏效。它给我在tmp文件执行以下操作:<b>这是桌子</B > <中心> <表宽度= “100%” ALIGN = “中心” CELLSPACING = “0” CELLPADDING = “0” border =“0”style =“font-size:10pt; margin-top:6pt;”> < tr style =“font-size:7pt;” > < TD列跨度= “2” ALIGN = “左” NOWRAP = “NOWRAP” > <b> THIS IS甲头1 </B > </TD > <TD> & NBSP; </td > < td colspan =“3”align =“center”nowrap =“nowrap”> <b>这个...... – user728166 2011-05-20 12:40:10

+0

那么你想要什么呢? HTML源代码的一个很好的* HTML *表示或?请具体! – 2011-05-20 12:46:48

+0

是的,如果可能的话,我希望它可以像在网页中打开时一样查看。 – user728166 2011-05-20 12:47:37

相关问题