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基础教程之udp端口扫描
Feb 10 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
Python向日志输出中添加上下文信息
May 24 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
Pytest中skip skipif跳过用例详解
Jun 30 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 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
Vue3为什么这么快
2020/09/23 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
python实现人脸识别代码
2017/11/08 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
代码详解django中数据库设置
2019/01/28 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
python右对齐的实例方法
2020/07/05 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
毕业研究生的自我鉴定
2013/11/30 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
人事部岗位职责范本
2014/03/05 职场文书
欢迎领导检查标语
2014/06/27 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
老人节标语大全
2014/10/08 职场文书
学术会议领导致辞
2015/07/29 职场文书