场景描述
在数据采集获取到数据后,就要考虑数据存储问题。
最近碰到一个比较有特点的网站,网站的背景图片是直接返回了base64编码展示在源码中,一个页面原始数据保存下来达到了近2M。因为项目要求,需要大量采集并存储,所以尝试对采集到的信息先在内存中进行压缩后存储。
压缩、解压源码
import io
import gzip
class InMemoryCompressor:
def __init__(self):
pass
def compress(self,buff:bytes):
buffer = io.BytesIO()
with gzip.GzipFile(fileobj=buffer, mode='w') as gz_file:
gz_file.write(buff)
compressed_data = buffer.getvalue()
return compressed_data
def decompress(self, compressed_data: bytes):
decompressed_buffer = io.BytesIO(compressed_data)
with gzip.GzipFile(fileobj=decompressed_buffer, mode='r') as gz_file:
decompressed_text = gz_file.read()
return decompressed_text