如何在BeautifulSoup中的标签之间替换文本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在BeautifulSoup中的标签之间替换文本?相关的知识,希望对你有一定的参考价值。
我已经定义了price
变量:
price = '7.12'
并且我正在尝试将0.00
中的<span class="rec-item-cost">0.00</span>
替换为price
。
我已定义soupPrice
以从标记中获取0.00
。
soupPrice = BeautifulSoup('<span class="rec-item-cost">0.00</span>', 'lxml').span.text
然后我尝试:
soupPrice = BeautifulSoup('<span class="rec-item-cost">0.00</span>', 'lxml').span.text.replace_with(price)
哪个会产生错误:
AttributeError: 'str' object has no attribute 'replace_with'
所以我然后尝试删除代码的.text
部分:
soupPrice = BeautifulSoup('<span class="rec-item-cost">0.00</span>', 'lxml').span.replace_with(price)
这次,如果我写print(soupPrice)
,我会得到:
<span class="rec-item-cost">0.00</span>
我应该如何编写代码,以便用7.12正确替换0.00?
尝试这样:
price = 7.12
soupPrice = BeautifulSoup('<span class="rec-item-cost">0.00</span>', 'lxml').span
new_price = str(soupPrice).replace(soupPrice.text,str(price))
print(new_price)
输出:
<span class="rec-item-cost">7.12</span>
根据documentation,您可以使用replaceWith
from bs4 import BeautifulSoup as bs
html = '''<span class="rec-item-cost">0.00</span'''
soup = bs(html, 'lxml')
price = '7.12'
soup.select_one('.rec-item-cost').contents[0].replaceWith(price)
print(soup)
以上是关于如何在BeautifulSoup中的标签之间替换文本?的主要内容,如果未能解决你的问题,请参考以下文章
BeautifulSoup - 如何获取两个不同标签之间的所有文本?