2019独角兽企业重金招聘Python工程师标准>>>

背景

有时候爬虫爬过的url需要进行指纹核对,比如Scrapy就是进行指纹核对,如果是指纹重复则不再爬取。当然在入库的时候我还是需要做一次核对,否则如果爬虫有漏掉,进入数据库就不合适了。

思路

根据Scrapy的指纹生成方式,这次的指纹生成方式也是用hash的MD5对目标URL进行加密,生成固定长度的字符串,然后在数据库里面将字段设置成unique,这样的话在保证url固定长度的情况下还能够保证入库后的唯一性,进最大努力避免出现重复的数据。

指纹生成代码

新建一个文件,然后在里面编写指纹生成的方法,在使用的时候from import进来,调用方法即可。代码为:

import hashlibdef 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把文件和方法引入,就可以使用了

转载于:https://my.oschina.net/RanboSpider/blog/1607707

Python 给字符串进行加密,生成唯一固定长度字符串相关推荐

  1. python 字符串加密 唯一数字_python实现字符串加密 生成唯一固定长度字符串

    背景 有时候爬虫爬过的url需要进行指纹核对,比如Scrapy就是进行指纹核对,如果是指纹重复则不再爬取.当然在入库的时候我还是需要做一次核对,否则如果爬虫有漏掉,进入数据库就不合适了. 思路 根据S ...

  2. python加密,实现字符串加密,生成唯一固定长度字符串

    应用场景: 1.cache存储,以query的参数为key,存储一天有效期的结果:(query的参数往往很多,字符串很长,不可直接存储) 2.数据的增量更新(爬虫等等) 背景 有时候爬虫爬过的url需 ...

  3. python学习之路—自动生成唯一标识(md5加密方式)

    前言 在python存入数据库时,如果数据库的主键不是自增方式,那么我们可能需要自己生成一个唯一标识符,现在最好的方法就是md5加密生成的32位作为主键,本文将会介绍python的两种自动生成唯一标识 ...

  4. ASP.NET - 截取固定长度字符串显示在页面,多余部分显示为省略号

    ASP.NET - 截取固定长度字符串显示在页面,多余部分显示为省略号 方法一: publicstaticstring GetString(string str, int length){int i ...

  5. PHP截取固定长度字符串函数

    <?php function toFixLen($str,$len){ //固定长度字符串的截取 if($len>=strlen($str)||!$len) return $str; $l ...

  6. 【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串

    在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,其中Left函数表示从开始字符向后截取多少个字符,Right函数表 ...

  7. 数字转换为固定长度字符串

    在Excel中使用公式可以轻松实现将数字转换为固定长度字符串(例如以最大数字的位数为准),如下图所示. 在VBA中如何实现这个功能,是否需要调用上图的Excel函数来实现?答案是:完全不需要,VBA中 ...

  8. Python 标准库 —— uuid(生成唯一 ID)

    有时我们在百度贴吧,在一个网站,保存网页上的一些图片时,图片名有时会是一串很长的数字和字母组成的,但无一例外,图像之间不会出现重名.这个唯一的 id,一般通过 uuid 的方式获得,uuid 根据的是 ...

  9. python创建字符串数组_如何创建任意长度字符串的numpy数组?

    您可以通过创建一个dtype=object数组来执行此操作.如果尝试将长字符串分配给普通numpy数组,它将截断该字符串:>>> a = numpy.array(['apples', ...

最新文章

  1. 快速启动程序的工具软件都比不了Win+R-转
  2. 软件工程第一次测试——学生管理系统设计
  3. linux磁盘链路故障
  4. 找到微信聊天记录占空间的真正原因了
  5. 计算机水平等级全称,全国计算机等级考试介绍
  6. 湖南电信拨号上网的某个记录资料
  7. 网页数据提取----网络投票软件开发(续1)
  8. SPA与MPA的区别
  9. Bitdefender 查询域名和url是否恶意
  10. java ref传引用_java引用传递
  11. FFT的C语言实现,对照MATLIB
  12. Python实现socket简单一对一聊天
  13. 密码学之DES/AES算法
  14. 黑苹果论坛被封_Hackintosh (黑苹果) 折腾
  15. 1个系统节拍 c语言_【菜鸡C语言】菜鸡鼓起勇气用Dev-c++打起节奏来了
  16. 什么是随机对照双盲实验
  17. 【转】 男人二十岁后应该学会的习惯
  18. p1171: 蜗牛爬井
  19. 推荐两款java版开源的MES制造执行系统源码,免费分享
  20. AudioToolbox---AUAudioUni

热门文章

  1. python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
  2. docx文档怎么排列图片_“胶水语言”办公自动化Word篇——使用Python编辑和读取Word文档
  3. php协程 多线程,【swoole.2.01】多进程,多线程和协程
  4. java mapper.readtree_java - 杰克逊的readValue和readTree:何时使用哪个? - 堆栈内存溢出...
  5. 计算机系解说词,计算机室解说词
  6. 在linux下 用户的密码错误,linux – 常规用户帐户之间的su失败,“su:密码错误”...
  7. java gof_java GOF23设计模式-简单工厂模式进阶
  8. Java学习笔记1.1.3 搭建Java开发环境 - 编写并运行Java程序
  9. Java实训项目9:GUI学生信息管理系统 - 实现步骤 - 创建数据访问接口
  10. 《天天数学》连载07:一月七日