python自动生成证件号的方法示例


Posted in Python onJanuary 14, 2021

前言

在跟进需求的时候,往往涉及到测试,特别是需要用到身份信息的时候,总绕不开身份证号码这个话题。之前在跟一个互联网产品的时候,需要很多身份证做测试,又不想装太多软件自动生成(有需要的小伙伴可自行搜索身份证号码自动生成软件),按照身份证规则现编也比较浪费时间,在处理身份数据时,Python就非常有用了。

方法示例如下

# Author:BeeLe
# -*-coding:utf-8-*-

# 生成身份证号码主程序
import urllib.request
import requests
from bs4 import BeautifulSoup
import re
import random
import time
import lxml


# class IDCard():
def regiun(strarr):
 '''生成身份证前六位'''
 first = random.choice(strarr)
 return first


def year():
 '''生成年份'''
 # 1978为第一代身份证执行年份,now-18直接过滤掉小于18岁出生的年份
 now = time.strftime('%Y')
 second = random.randint(1978, int(now) - 18)
 # age = int(now)-second
 # print('随机生成的身份证人员年龄为:'+str(age))
 return second


def month():
 '''生成月份'''
 three = random.randint(1, 12)
 if three < 10:
 three = '0' + str(three)
 return three
 else:
 return three


def day(year, month):
 '''生成日期'''
 four = getDay(year, month)
 # 日期小于10以下,前面加上0填充
 if four < 10:
 four = '0' + str(four)
 return four
 return four


def getDay(year, month):
 '''根据传来的年月份返回日期'''
 # 1,3,5,7,8,10,12月为31天,4,6,9,11为30天,2月闰年为28天,其余为29天
 aday = 0
 if month in (1, 3, 5, 7, 8, 10, 12):
 aday = random.randint(1, 31)
 elif month in (4, 6, 9, 11):
 aday = random.randint(1, 30)
 else:
 # 即为2月判断是否为闰年
 if ((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)):
  aday = random.randint(1, 28)
 else:
  aday = random.randint(1, 29)
 return aday


def randoms():
 '''生成身份证后四位'''
 five = random.randint(1, 9999)
 if five < 10:
 five = '000' + str(five)
 elif 10 < five < 100:
 five = '00' + str(five)
 elif 100 < five < 1000:
 five = '0' + str(five)
 return five

# if __name__ == '__main__':

def idcard():
 # 通过爬取网页获取到身份证前六位
 url = 'https://wenku.baidu.com/view/a55406b919e8b8f67d1cb920'
 request = urllib.request.Request(url) # 获取url的网页源码
 response = urllib.request.urlopen(request)
 html = response.read()
 soup = BeautifulSoup(html, 'lxml')
 strarr = []
 for info in soup.find_all(class_='expanded'):
 pattern = re.compile(r'\d{6}')
 b = re.findall(pattern, info.text)
 for item in b:
  strarr.append(item)

 for i in range(1, 2):
 first = regiun(strarr)
 second = year()
 three = month()
 four = day(second, three)
 last = randoms()
 IDCard = str(first) + str(second) + str(three) + str(four) + str(last)
 # print('随机生成的身份证号码为:' + IDCard)
 return IDCard
# Idcard = idcard

总结

到此这篇关于python自动生成证件号的文章就介绍到这了,更多相关python自动生成证件号内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python发送arp欺骗攻击代码分析
Jan 16 Python
python安装与使用redis的方法
Apr 19 Python
Python中set与frozenset方法和区别详解
May 23 Python
Python实现的双色球生成功能示例
Dec 18 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
Python递归函数实例讲解
Feb 27 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
用python批量移动文件
Jan 14 #Python
python用700行代码实现http客户端
Jan 14 #Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 #Python
Django扫码抽奖平台的配置过程详解
Jan 14 #Python
如何用python实现一个HTTP连接池
Jan 14 #Python
如何用python写个模板引擎
Jan 14 #Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 #Python
You might like
PHP 强制下载文件代码
2010/10/24 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
Javascript浅谈之this
2013/12/17 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
js实现图片360度旋转
2017/01/22 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python的移位操作实现详解
2019/08/21 Python
详解Python3定时器任务代码
2019/09/23 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
八年级历史教学反思
2014/01/10 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
募捐感谢信
2015/01/22 职场文书
评职称个人总结
2015/03/05 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
浅谈Vue的computed计算属性
2022/03/21 Vue.js