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实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
PyQt5实现简易计算器
May 30 Python
python range实例用法分享
Feb 06 Python
python opencv进行图像拼接
Mar 27 Python
详解Python设计模式之策略模式
Jun 15 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
python如何支持并发方法详解
Jul 25 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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
详解php中反射的应用
2016/03/15 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
js模糊查询实例分享
2016/12/26 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
浅析Python中的多条件排序实现
2016/06/07 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python中的面向接口编程示例详解
2021/01/17 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
UNIX命令速查表
2012/03/10 面试题
公务员保密承诺书
2014/03/27 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
幸福来敲门观后感
2015/06/04 职场文书