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常用的日期时间处理方法示例
Feb 08 Python
Python实现图片转字符画的示例
Aug 22 Python
python 二分查找和快速排序实例详解
Oct 13 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
django manage.py扩展自定义命令方法
May 27 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
Python实现代码块儿折叠
Apr 15 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
Python参数传递实现过程及原理详解
May 14 Python
Python参数传递及收集机制原理解析
Jun 05 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 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调用微博接口实现微博登录的方法示例
2018/09/22 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
使用PHP开发留言板功能
2019/11/19 PHP
js 深拷贝函数
2008/12/04 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
快速了解python leveldb
2018/01/18 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
Python用SSH连接到网络设备
2021/02/18 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
小学毕业感言150字
2014/02/05 职场文书
新学期教师寄语
2014/04/02 职场文书
一体化教学实施方案
2014/05/10 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers