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使用线程封装的一个简单定时器类实例
May 16 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python实现图书借阅系统
Feb 20 Python
python和c语言的主要区别总结
Jul 07 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
Python实现批量自动整理文件
Mar 16 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生成EXCEL的东东
2006/10/09 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vuex入门最详细整理
2020/03/04 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
python计算N天之后日期的方法
2015/03/31 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
详解django中自定义标签和过滤器
2017/07/03 Python
python读取文件名并改名字的实例
2019/01/07 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
编辑个人求职信范文
2013/09/21 职场文书
招商业务员岗位职责
2013/12/16 职场文书
文明青少年标兵事迹材料
2014/01/28 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
学术研讨会主持词
2015/07/04 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技