Я пытаюсь заменить содержимое iframe объектом BeautifulSoup. Пусть говорят, что этоКак добавить внешний тег к объекту BeautifulSoup
s="""
<!DOCTYPE html>
<html>
<body>
<iframe src="http://www.w3schools.com">
<p>Your browser does not support iframes.</p>
</iframe>
</body>
</html>
"""
оригинальный HTML разбираемый с
dom = BeatifulSoup(s, 'html.parser')
и я получаю IFRAME с f = dom.find('iframe')
Теперь я хочу, чтобы заменить только содержимое фрейма с другим объектом BeautifulSoup , например, объект newBO. Если я делаю f.replace_with(newBO)
, он работает, но я теряю иерархию исходного файла, потому что тег iframe отсутствует. Если вместо объекта BeautifulSoup я имел только строку я мог сделать f.string = 'just a string'
и что бы заменить содержимое, но если я f.string = newBO
я
TypeError: 'NoneType' object is not callable
Так что я пытаюсь использовать replace_with
но добавить a iframe
тег к новомуBO. Как я могу это сделать? Можете ли вы предложить другой способ?
Вы можете использовать функцию 'get_text()' для возврата содержимого под тегом - 'f.get_text(). Replace_with (newBO)'. Дайте мне знать, если это сработает. –
@NikhilNanjappa, текст не имеет ничего общего с тегами. 'get_text -> Ваш браузер не поддерживает iframes.', так что не будет делать то, что хочет OP. –