如何用 python 中的漂亮汤替换 html 页面中的特定文本行

how to replace a specific text line within a html page with beautiful soup in python

我是 beautiful souppython 的新手。

我正在尝试替换下面的行

Assurez-vous de bien recevoir tous nos messages en ajoutant tribeca@yes.net a votre carnet d'adresses.

yaya toure

我已经完成了这段代码(见下文)

from BeautifulSoup import BeautifulSoup   
import re

url = r"/cygdrive/d/ope_mdl/bsoup/test_toto.html"
page = open(url)
soup = BeautifulSoup(page.read())

soup.replace('Assurez-vous de bien recevoir tous nos messages en ajoutant tribeca@yes.net a votre carnet d\'adresses.', 'Yaya Toure')

如您所见,votre carnet d'adresses. 已经有一个 '。我放了一个 \

但是,它似乎没有替换文本。

我做错了什么?

编辑: 第 1 到 5 行工作正常。您必须在本地驱动器中创建一个 HTML 文件。只有第 6 行给我带来了问题。

我似乎无法在 pydoc 中找到 BeautifulSoup.replace。所以我相信你不应该在你的代码中使用它。所以不要使用

search_text = 'Assurez-vous de bien recevoir tous nos messages en ajoutant tribeca@yes.net a votre carnet d\'adresses.'
soup.find(text=lambda x: x.startswith(search_text)).replaceWith('Yaya Toure')

Edit:请注意,我们必须将函数作为文本参数传递,因为您的特定 html 文件的搜索字符串由更多文本分隔,并带有 <br /> 在文本的中间。这会导致文本属性成为您想要的字符串和垃圾数据的串联。