python实现字符串加密 生成唯一固定长度字符串


Posted in Python onMarch 22, 2019

背景

有时候爬虫爬过的url需要进行指纹核对,比如Scrapy就是进行指纹核对,如果是指纹重复则不再爬取。当然在入库的时候我还是需要做一次核对,否则如果爬虫有漏掉,进入数据库就不合适了。

思路

根据Scrapy的指纹生成方式,这次的指纹生成方式也是用hash的MD5对目标URL进行加密,生成固定长度的字符串,然后在数据库里面将字段设置成unique,这样的话在保证url固定长度的情况下还能够保证入库后的唯一性,进最大努力避免出现重复的数据。

指纹生成代码

新建一个文件,然后在里面编写指纹生成的方法,在使用的时候from import进来,调用方法即可。代码为:

import hashlib
 
def get_md5(url):
 """
 由于hash不处理unicode编码的字符串(python3默认字符串是unicode)
  所以这里判断是否字符串,如果是则进行转码
  初始化md5、将url进行加密、然后返回加密字串
 """
 if isinstance(url, str):
  url = url.encode("utf-8")
 md = hashlib.md5()
 md.update(url)
 return md.hexdigest()

为了验证代码的可用性,再加上代码:

if __name__ == "__main__":
 urls = "http://www.baidus.com"
 print(get_md5(urls))

在本地运行无误,再把下面这串删除。等到调用的时候from import get_md5把文件和方法引入,就可以使用了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
python opencv 图像拼接的实现方法
Jun 27 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
Python 实现取多维数组第n维的前几位
Nov 26 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
django 实现简单的插入视频
Apr 07 Python
Python-openCV开运算实例
Jul 05 Python
Python中Qslider控件实操详解
Feb 20 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
详解Python循环作用域与闭包
Mar 21 #Python
浅谈python之高阶函数和匿名函数
Mar 21 #Python
浅谈Python反射 & 单例模式
Mar 21 #Python
详解Python中is和==的区别
Mar 21 #Python
浅谈Python的条件判断语句if/else语句
Mar 21 #Python
python使用thrift教程的方法示例
Mar 21 #Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 #Python
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Python语言生成水仙花数代码示例
2017/12/18 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
父母对孩子说的话
2014/04/12 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
白血病捐款倡议书
2014/05/14 职场文书
个人授权委托书
2014/09/15 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
先进个人事迹材料
2014/12/29 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
Python 匹配文本并在其上一行追加文本
2022/05/11 Python