Ich versuche, den Inhalt eines Iframes durch ein BeautifulSoup-Objekt zu ersetzen. Lassen Sie sagen, dieseSo fügen Sie dem BeautifulSoup-Objekt einen äußeren Tag hinzu
s="""
<!DOCTYPE html>
<html>
<body>
<iframe src="http://www.w3schools.com">
<p>Your browser does not support iframes.</p>
</iframe>
</body>
</html>
"""
die ursprüngliche html ist mit
dom = BeatifulSoup(s, 'html.parser')
analysiert werden und ich erhalte die iframe mit f = dom.find('iframe')
Jetzt will ich mit einem anderen BeautifulSoup Objekt nur den Inhalt des iframe ersetzen zB das Objekt newBO. Wenn ich f.replace_with(newBO)
mache, funktioniert es, aber ich verliere die Hierarchie der ursprünglichen Datei, weil das iframe-Tag weg ist. Wenn anstelle eines BeautifulSoup Objekt, das ich nur einen String hatte, konnte ich f.string = 'just a string'
tun und das würde den Inhalt ersetzen, aber wenn ich f.string = newBO
ich
TypeError: 'NoneType' object is not callable
So die replace_with
Ich versuche zu verwenden, aber hinzufügen ein iframe
Tag an die newBO. Wie kann ich das machen? Können Sie etwas anderes vorschlagen?
Mit der Funktion 'get_text()' können Sie den Inhalt unter einem Tag zurückgeben - 'f.get_text(). Replace_with (newBO)'. Lass es mich wissen, wenn es funktioniert. –
@NikhilNanjappa, Text hat nichts mit Tags zu tun. 'get_text -> Ihr Browser unterstützt keine iframes.' Das würde nicht tun, was das OP will. –