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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
在Python中处理XML的教程
Apr 29 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
Python 获取项目根路径的代码
Sep 27 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
Python return语句如何实现结果返回调用
Oct 15 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 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设计模式 FlyWeight (享元模式)
2011/06/26 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
Python 变量的创建过程详解
2019/09/02 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
python如何调用java类
2020/07/05 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
木工主管岗位职责
2013/12/08 职场文书
先进事迹材料范文
2014/12/29 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
Python连续赋值需要注意的一些问题
2021/06/03 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL