python - 段落在用 Beautifulsoup 处理后合并
问题描述
我的任务是突出显示 html 文件中的一些单词。这工作正常,但不幸的是,在结果文件中,段落从某个点合并在一起(所以我有没有空行的纯文本),这看起来相当难看。
我不太明白这是什么原因,特别是因为这种现象不是发生在文件的开头,而是发生在中间的某个点(所以文件的第一部分很好,第二部分很丑)。代码如下:
import bs4
from bs4 import BeautifulSoup
with open(file_in, 'r', encoding='utf8') as f:
source = f.read()
soup = BeautifulSoup(source, 'html.parser')
for tag in soup:
if type(tag) is not bs4.element.Tag:
continue
if ll[1]<90:
new_soup = BeautifulSoup(str(tag).replace(ll[0], '<span style="background-color:yellow">'+ll[0]+'</span>'))
else:
new_soup = BeautifulSoup(str(tag).replace(ll[0], '<span style="background-color:red">'+ll[0]+'</span>'))
tag.replace_with(new_soup)
with open(file_out, 'w', encoding='utf8') as f:
f.write(str(soup))
所以,file_in 非常好,但是 file_out 从中间的某个点来看是丑陋的,因为完整的文本被合并为一个块。有人知道如何防止这种情况吗?
解决方案
推荐阅读
- c# - 根据属性值比较列表中的对象
- php - 用于序列化的自定义循环引用处理程序
- python - 我正在尝试实现两个新命令,但它们在我的 Sikuli 脚本中被忽略
- django - 用于上传图像的 Django 媒体目录 HTTP 404
- javascript - 是否可以在 JavaScript 中自动声明数千个变量?
- python - Python v.3 将单个元素添加到列表中
- assemblyscript - 从 index.ts 以外的文件中导出类
- python - HTTP requests.post 超时
- csv - 将 Google Apps 脚本中的 CSV 文件上传到 BigQuery 表 - 行中的恶意逗号
- javascript - Run several javascript file dynamically using same npm run command