BeautifulSoup innerhtml?
Скажем, у меня есть страница с div
. Я легко могу получить этот div с soup.find()
.
Теперь, когда у меня есть результат, я хотел бы напечатать WHOLE innerhtml
этого div
: я имею в виду, мне нужна строка со всеми тегами html и текстом all toegether, точно так же, как строка Я бы получил javascript с obj.innerHTML
. Возможно ли это?
Ответы
Ответ 1
Существует недокументированная функция, которая приближает метод DOMs innerHTML:
def innerHTML(element):
return element.decode_contents(formatter="html")
Это прошло все мои тестовые примеры. Возможно, кто-то должен обновить документы?
Ответ 2
Один из вариантов мог бы использовать что-то вроде этого:
innerhtml = "".join([str(x) for x in div_element.contents])
Ответ 3
Как насчет только unicode(x)
? Кажется, работает для меня.
Изменить: Это даст вам внешний HTML, а не внутренний.
Ответ 4
Если вам нужен только текст (без HTML-тегов), вы можете использовать .text
:
soup.select("div").text