我有以下Beautifulsoup HTML标签,我想将标签中的文本TEXT TO BE UPDATED
更新为SOMETHING ELSE
。
<p><img src="./img.jpg"> TEXT TO BE UPDATED.</p>
让我们说上面<p>
标签的Beautifulsoup对象是p_tag
。我尝试使用p_tag.string.replace_with('SOMETHING ELSE')
,但因为p_tag.string
总是返回None
,所以它不起作用。知道为什么会发生吗?
答案 0 :(得分:0)
您需要使用p_tag.text
来获取文本,并使用p_tag.string
来设置新文本。
像这样:
source = '<p><img src="./img.jpg"> TEXT TO BE UPDATED.</p>'
bsoup = BeautifulSoup(source, 'html.parser')
p_tag = bsoup.p
old_text = p_tag.text
new_text = p_tag.img.text + ' Something new'
p_tag.string = new_text
print(p_tag.prettify())
# prints `<p><img src="./img.jpg"> Something new </p>`