#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. Да, я хочу, чтобы он просматривался точно так, как если бы он был открыт на веб-странице, если это возможно.