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编程中的异常处理教程
Aug 21 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
Python 通配符删除文件的实例
Apr 24 Python
python 常用的基础函数
Jul 10 Python
详解Python做一个名片管理系统
Mar 14 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
用python实现监控视频人数统计
May 21 Python
pandas DataFrame.shift()函数的具体使用
May 24 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强制下载类型的实现代码
2011/04/21 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php模拟post提交数据的方法
2015/02/12 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
Jquery Change与bind事件代码
2011/09/29 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
python利用hook技术破解https的实例代码
2013/03/25 Python
win7安装python生成随机数代码分享
2013/12/27 Python
pyside写ui界面入门示例
2014/01/22 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python绘制玫瑰的实现代码
2020/03/02 Python
python3中编码获取网页的实例方法
2020/11/16 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
历史系毕业生自荐信
2013/10/28 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
百年校庆感言
2015/08/01 职场文书
团组织关系介绍信
2019/06/24 职场文书
golang中的空slice案例
2021/04/27 Golang
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers