我有一个这样的文件:
words1 outside of a Tag <tag1> words2 inside of tag1 </tag1> words3 outside of a Tag
我想在tag1
之外提取字符串,然后使用beautifulsoup将其更改为:
changed word1 <tag1> words2 inside of tag1 </tag1> changed word3
如何用beautifulSoup替换标签中的单词?
答案 0 :(得分:2)
文本元素也被视为父元素的子元素。
如果找到tag1
,您可以在属性.previousSibling
和.nextSibling
中找到之前和之后的文字。或者,您可以找到父标记,然后选择适当的子标记。
示例:
from bs4 import BeautifulSoup
# assuming BeautifulSoup 4
doc = """
words1 outside of a Tag <tag1>words2 inside of tag1</tag1>
words3 outside of a Tag
"""
soup = BeautifulSoup(doc, 'html.parser')
tag = soup.find('tag1')
tag.previousSibling.replaceWith('changed word1 ')
tag.nextSibling.replaceWith(' changed word3')
print(soup)