Python-使用beautifulSoup查找文本,然后替换为原始汤变量

commentary = soup.find('div', {'id' : 'live-text-commentary-wrapper'})

findtoure = commentary.find(text = re.compile('Gnegneri Toure Yaya')).replace('Gnegneri Toure Yaya', 'Yaya Toure')

评论包含Gnegneri Toure Yaya的各种实例,需要更改为Yaya Toure。

findAll() 因为findtoure是一个列表,所以不起作用。

我遇到的另一个问题是此代码只是找到它们并将它们替换为一个名为findtoure的新变量,我需要在原始汤中替换它们。

我想我只是从错误的角度看待这个问题。

回答:

你不能做你想要什么 公正

.replace()。从BeautifulSoup文档上NavigableString

您不能就地编辑字符串,但是可以使用将一个字符串替换为另一个字符串replace_with()

这正是您需要做的。进行每场比赛,然后调用.replace()包含的文本,并用以下文本替换原始文本:

findtoure = commentary.find_all(text = re.compile('Gnegneri Toure Yaya'))

for comment in findtoure:

fixed_text = comment.replace('Gnegneri Toure Yaya', 'Yaya Toure')

comment.replace_with(fixed_text)

如果您想进一步使用这些注释,则需要进行新的查找:

findtoure = commentary.find_all(text = re.compile('Yaya Toure'))

或者,如果您只需要生成的 字符串

(因此Pythonstr对象,而不是NavigableString仍与该BeautifulSoup对象连接的对象),只需收集这些fixed_text对象即可:

findtoure = commentary.find_all(text = re.compile('Gnegneri Toure Yaya'))

fixed_comments = []

for comment in findtoure:

fixed_text = comment.replace('Gnegneri Toure Yaya', 'Yaya Toure')

comment.replace_with(fixed_text)

fixed_comments.append(fixed_text)

以上是 Python-使用beautifulSoup查找文本,然后替换为原始汤变量 的全部内容, 来源链接: utcz.com/qa/417639.html

回到顶部