如何解决在BeautifulSoup中用<tag> substring </tag>替换子字符串
我正在尝试修改现有的html文件,以便将特定关键字打印为强关键字(无论它们出现在何处)。
我的尝试:
from bs4 import BeautifulSoup as soup
txt = """<html><head><style></style></head><body><h2>"This is my keyword</h2><table><tr><td>This could be another instance of the keyword.</td></tr></table></body></html>"""
buzz_words = ["keyword","apples"]
htmlSoup = soup(txt,features="html.parser")
for word in buzz_words:
target = htmlSoup.find_all(text=re.compile(r"" + re.escape(word)))
for v in target:
v.replace_with(v.replace(word,"".join(["<strong>",word,"</strong>"])))
print(str(htmlSoup))
结果:
This is my < ;strong> ;keyword< ;/strong> ;(spaces added by me)
所需结果:
This is my <strong>keyword</strong>
解决方法
尝试以下
from bs4 import BeautifulSoup as soup
import re
import html
txt = """<html><head><style></style></head><body><h2>"This is my keyword</h2><table><tr><td>This could be another instance of the keyword.</td></tr></table></body></html>"""
buzz_words = ["keyword","apples"]
htmlSoup = soup(txt,features="html.parser")
for word in buzz_words:
target = htmlSoup.find_all(text=re.compile(r"" + re.escape(word)))
for v in target:
v.replace_with(v.replace(word,"".join(["<strong>",word,"</strong>"])))
print(html.unescape(str(htmlSoup.prettify())))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。