Могу ли я распечатать HTML, как он будет отображаться на веб-странице без тегов в python?

#python #html #printing #webpage

#python #печать #HTML

Вопрос:

Я хочу напечатать 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>amp;nbsp;</td>
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER2</B></td>
    <td>amp;nbsp;</td>
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER3</B></td>
    <td>amp;nbsp;</td>
    <td colspan="3" align="center" nowrap><B> THIS IS A HEADER4</B></td>
    <td>amp;nbsp;</td>
</tr>

</table>
"""

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

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

Но при этом выводится HTML с тегами. Есть ли способ сделать это в python?

Ответ №1:

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

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

Комментарии:

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

2. Теперь, когда я думаю об этом, это будет отлично работать, если просто сохранить его как HTML-файл и открыть в веб-браузере. Я должен иметь возможность просто добавить все таблицы в html-файл и открыть для просмотра их все сразу в веб-браузере. Спасибо! Иногда это самый простой ответ, который является лучшим.

Ответ №2:

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

Комментарии:

1. Это не сработало. В файле tmp это выдало мне следующее: <b amp; > ЭТО ТАБЛИЦА amp; </ b amp; > amp; <center amp; > amp; < ширина таблицы = «100%» align =»center» cellspacing =»0″ cellpadding = «0» border = «0» style=»размер шрифта: 10pt; верхнее поле: 6pt; «amp; > amp; < tr style=»размер шрифта : 7pt;»> <td colspan=»2″ align=»left» nowrap= «nowrap»><b amp; > ЭТО ЗАГОЛОВОК 1amp; </bamp; >amp; </td amp; > amp; <td colspan=»3″ align=»center» nowrap=»nowrap»amp; ><b> ЭТО…

2. Итак, чего именно вы хотите? Хорошее HTML представление исходного кода HTML или? Пожалуйста, будьте конкретны!

3. Да, я хочу, чтобы он просматривался точно так, как если бы он был открыт на веб-странице, если это возможно.