如何在BeautifulSoup中的<span>标记之间替换文本?

时间:2019-10-20 21:20:55

标签: python web-scraping 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?

2 个答案:

答案 0 :(得分:1)

像这样尝试:

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>

答案 1 :(得分:1)

根据documentation,您可以使用replaceWith

out