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写的创建文件夹自定义函数mkdir()
Aug 25 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
浅析python的Lambda表达式
Feb 27 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
基于python监控程序是否关闭
Jan 14 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
python实现画图工具
Aug 27 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
python版大富翁源代码分享
2018/11/19 Python
python简单贪吃蛇开发
2019/01/28 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
帕克纽约:PARKER NY
2018/12/09 全球购物
会计专业自荐信范文
2013/12/02 职场文书
大学生自荐书范文
2013/12/10 职场文书
超级搞笑检讨书
2014/01/15 职场文书
财务总经理岗位职责
2014/02/16 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
三方合作意向书范本
2015/05/09 职场文书
幽灵公主观后感
2015/06/09 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python