Можно ли установить разметку как содержимое тега (сродни настройке innerHtml
в JavaScript)?Добавить строку разметки в тег в BeautifulSoup
Ради примера, скажем, я хочу добавить 10 <a>
элементов в <div>
, но они разделены запятой:
soup = BeautifulSoup(<<some document here>>)
a_tags = ["<a>1</a>", "<a>2</a>", ...] # list of strings
div = soup.new_tag("div")
a_str = ",".join(a_tags)
Использование div.append(a_str)
ускользает <
и >
в <
и >
, так Я в конечном итоге с
<div> <a1> 1 </a> ... </div>
BeautifulSoup(a_str)
оберток этого в <html>
, и я вижу, получение дерево из него как неэлегантный хак.
Что делать?
Спасибо! Это одно из решений, но в идеале для выполнения этой задачи мне нужен короткий однострочный вкладыш. И в этот момент я нахожу что-то вроде «BeautifulSoup» («
@JanParowka Я отредактировал ответ и включил 2 варианта. Загрузка тега из строки с помощью 'BeautifulSoup (...)' является самым простым вариантом. – alecxe
Да, прокомментировал перед вашим редактированием. Это то, что я искал. Должно быть, он пропустил его в документе, так как я ожидал, что он будет в модифицирующем дереве. Потрясающие! – Konrad