使用美丽的汤找到并替换

时间:2018-07-13 00:11:33

标签: regex python-3.x beautifulsoup

试图用美丽的汤和正则表达式来代替。汤找到了我需要的东西,然后将其转换为字符串并使用正则表达式进行替换,但无法正常工作。有没有找到并用美丽的汤代替。

soup = BeautifulSoup(file_data, 'html.parser')
found_data = soup.find(class_='front_page_feature')

found_data = str(found_data)
print(re.sub(found_data, mysql_data,file_data,flags = re.DOTALL))

1 个答案:

答案 0 :(得分:1)

您要替换找到的节点的文本内容。只需将.string属性设置为mysql_data即可进行更改:

>>> from bs4 import BeautifulSoup
>>> file_data = """<p class="front_page_feature">Some data</p><p class="else">Other data</p>"""
>>> soup = BeautifulSoup(file_data, 'html.parser')
>>> found_data = soup.find(class_='front_page_feature')
>>> mysql_data = "New Text"
>>> found_data.string = mysql_data
>>> soup
# => <p class="front_page_feature">New Text</p><p class="else">Other data</p>
#                                  ^^^^^^^^

您当然可以用其他任何方式来处理文本,甚至可以使用正则表达式。