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中的yield使用方法
Feb 11 Python
Python基于DES算法加密解密实例
Jun 03 Python
使用Python3 编写简单信用卡管理程序
Dec 21 Python
python实时监控cpu小工具
Jun 21 Python
python实现抽奖小程序
Apr 15 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
Python气泡提示与标签的实现
Apr 01 Python
Pycharm IDE的安装和使用教程详解
Apr 30 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
杏林同学录(八)
2006/10/09 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
python获取标准北京时间的方法
2015/03/24 Python
Python脚本实现格式化css文件
2015/04/08 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
Python通过字典映射函数实现switch
2020/11/06 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
刚毕业大学生自荐信范文
2014/02/20 职场文书
大专生自荐书范文
2014/06/22 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
五年级小学生评语
2014/12/26 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书