Могу ли я напечатать HTML, как он будет отображаться на веб-странице без тегов в Python? - PullRequest
3 голосов
/ 20 мая 2011

Я хочу напечатать html в документе, но я хочу, чтобы он был отформатирован так, как если бы он просматривался на веб-странице.

У меня есть следующий код:

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?

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

Если вы действительно действительно хотите записать это как текстовый файл, вы можете использовать lynx в качестве средства рендеринга для html в текст.

Если вы просто хотите открыть созданный вами html-файл и вывести его точно так же, как в веб-браузере, я предлагаю сохранить его как tmp.html и открыть его в веб-браузере.

0 голосов
/ 20 мая 2011
...
tmp.write(cgi.escape(soup.renderContents()))
...