前言
前两边文章讲了总体的思路和最开始的数据获取,在有了基本的数据之后,下一步需要思考的就是怎么处理数据?这里我们先提出总需求:将文本数据转换为图片数据;其中涉及
- 如何转换为图片
- 如何清洗一些文本内容
- 如何处理一些意外情况
在本篇文章中,我尝试尽量把我们的思考,尝试和实践分享记录一下,
一、数据清洗
1.思路
由于原始数据是一系列的html文本数据,再转化为图片之前需要进行数据预处理——html文本清洗。
我们所需要做的就是:
- 提取部分内容
- 修改html元素
- 保存新的html文本
这里插一句,熟悉了解html相关的知识真的是有必要的,之前一直不熟悉相关的基础知识,顺便在此了解一下。
结合项目需求,我们大体的数据可以分为几类,而且每一类数据差异都很大,因此一套统一的数据清洗规则不适用,结合不同数据的特征考虑编写一些不同的清洗规则。
2.实现
(1)library
- bs4[核心]:解析html,便于进一步加工和处理html文本,主要使用find(),find_all()等
- os:读写保存文本
(2)注意
- 鲁棒性:对于异常处理的考虑,使用try-except或者if-else语句进行意外处理,例如有些对于每一种类型的tag是否存在
- 差异性:不同文章的不同处理方式
二、图片转换
1.思路
如何将一段文本或者html元素转换为一个png图片呢?这里我们经过调研和实践,一是使用selenium自带的截图方法效果并不好,二是没有直接的函数去转换,最后我们选择使用imgkit整个库去进行转换,这个库也是封装了其他的方法——wkhtmltoimage,这个库是进一步封装qt和其他方法的库,其中还调用了一个外在的程序。
2.实现
- imgkit:使用该库进行转换
- wkhtmltoimage.exe:配合imgkit处理string数据,将其转换为图片