Как построить поддерево с помощью Python, BeautifulSoup? - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь использовать BeautifulSoup для создания веб-страницы.

Когда я задаю внутреннее содержимое тега с помощью string, он автоматически экранирует строку. Мне еще предстоит найти технику, например html метод / атрибут, где BS не будет автоматически избегать всего.

from bs4 import BeautifulSoup

f = open("template.html", "r")
soup = BeautifulSoup(f.read(), 'html.parser')
f.close()

x = soup.find("div", id="example")
x.string("<div>example</div>")

# x's contents...
# <div id="example">&lt;div&gt;example&lt;/div&gt;</div>

Очевидно, что BS чаще используется для очистки HTML, чем для сборки HTML - есть ли общая библиотека для сборки?

1 Ответ

1 голос
/ 24 июня 2019

Вы должны попробовать Джинджа . Затем вы можете сделать шаблоны следующим образом:

from jinja2 import Template

t = Template('<div id="example">{{example_div}}</div>')
t.render(example_div='<div>example</div>')

В результате:

'<div id="example"><div>example</div></div>'

Конечно, вы также можете прочитать шаблон из файла:

with open('template.html', 'r') as f:
    t = Template(f.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...