我们在爬取网页内容时,往往会有几万个字段的html源码,如果存入MYSQL 上,会出现字段太大存入不了的问题。
以下是一些处理这种情况的策略:
如果数据库支持,可以考虑将字段类型从 VARCHAR
改为 TEXT
或 BLOB
,或者再大一点的文本储存格式:MEDIUMTEXT
或 LONGTEXT
。(强推!)
例如,在MySQL中,可以将 VARCHAR(255) 改为 TEXT。
使用HTML压缩工具或库来减少HTML内容的大小。这可以通过删除多余的空格、注释和优化标签来实现。
htmlmin.minify
是一个用于压缩 HTML 内容的函数,它可以移除 HTML 字符串中的多余空格、注释等,以减小 HTML 文件的大小。这通常用于提高网页加载速度和改善性能。
获取的html如果想要压缩,可以用 htmlmin.minify
的方法:
import htmlmin
html = """
示例页面
欢迎来到我的网站
这是一个示例段落。
"""
mini_html = htmlmin.minify(str(html), remove_empty_space=True)
print(mini_html )
#增强版
mini_html = htmlmin.minify(str(html), remove_empty_space=True, remove_comments=True)
print(mini_html )
这里的remove_empty_space=True
参数,表示移除 HTML 中的空格和换行。
如果你还希望移除注释,可以添加 remove_comments=True
参数。
最后注意的是,html最好要化为str格式,然后存入。
可以粗暴地,用replace() 把一些不必要的空格、注释、脚本和样式标签等移除掉。
这种有点像写作文超格子字数的时候,把标点符号跟文字挤在同一个格子的观感。
将HTML内容切割分成多个部分,每部分存储在不同的记录中。这需要在应用程序中进行逻辑处理,以在检索时重新组装内容。
(这种办法后期需要管理好各种表格,完整度不太能保证)
如果实在还是不行的话,要么就用分布式的数据库去存储吧,起码支持的空间大一点。