如何用 python 中的漂亮汤替换 html 页面中的特定文本行
how to replace a specific text line within a html page with beautiful soup in python
我是 beautiful soup
和 python
的新手。
我正在尝试替换下面的行
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 />
在文本的中间。这会导致文本属性成为您想要的字符串和垃圾数据的串联。
我是 beautiful soup
和 python
的新手。
我正在尝试替换下面的行
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 />
在文本的中间。这会导致文本属性成为您想要的字符串和垃圾数据的串联。