iframeの内容をBeautifulSoupオブジェクトに置き換えようとしています。今、私は別のBeautifulSoupオブジェクトとのiframeのコンテンツのみを交換する場合は、このBeautifulSoupオブジェクトに外部タグを追加する方法
s="""
<!DOCTYPE html>
<html>
<body>
<iframe src="http://www.w3schools.com">
<p>Your browser does not support iframes.</p>
</iframe>
</body>
</html>
"""
が
dom = BeatifulSoup(s, 'html.parser')
で解析され、元のHTMLであると私はf = dom.find('iframe')
ではiframeを取得しましょう例えば、オブジェクトnewBO。もし私がすればf.replace_with(newBO)
が動作しますが、iframeタグがなくなるため元のファイルの階層が失われます。代わりにBeautifulSoupオブジェクトの私はf.string = 'just a string'
を行うことができ、単に文字列を持っていたし、それがコンテンツを交換するだろうが、私はf.string = newBO
をすれば、私はだから私はreplace_with
を使用しますが、追加しようとしています
TypeError: 'NoneType' object is not callable
を取得した場合newBOへのiframe
タグ。どうやってやるの?あなたは何か他の方法を提案できますか?
'get_text()'関数を使って、タグ 'f.get_text()。replace_with(newBO)'の内容を返すことができます。それが働いたら教えてください。 –
@NikhilNanjappa、テキストはタグとは関係ありません。 'get_text - >あなたのブラウザはiframeをサポートしていません。 'というように、OPが望むことはしません。 –