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 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
pandas多级分组实现排序的方法
Apr 20 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python判断一个三位数是否为水仙花数的示例
Nov 13 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
pandas的resample重采样的使用
Apr 24 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python自动计算图像数据集的RGB均值
Jun 18 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 getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
重定向实现代码
2006/11/20 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
Python二元赋值实用技巧解析
2019/10/25 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Django使用rest_framework写出API
2020/05/21 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
行政前台岗位职责
2013/12/04 职场文书
考试不及格的检讨书
2014/01/22 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
教师节演讲稿
2014/05/06 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技