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获取网页上图片下载地址的方法
Mar 11 Python
python用pickle模块实现“增删改查”的简易功能
Jun 07 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
详解Python使用tensorflow入门指南
Feb 09 Python
Python使用gRPC传输协议教程
Oct 16 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
Python文件路径名的操作方法
Oct 30 Python
python循环输出三角形图案的例子
Nov 22 Python
python输出pdf文档的实例
Feb 13 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
python绘制趋势图的示例
Sep 17 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生成WAP页面
2006/10/09 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
php 伪静态之IIS篇
2014/06/02 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
jquery实现div阴影效果示例代码
2013/09/16 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python编写猜数字小游戏
2019/10/06 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
上海中网科技笔试题
2012/02/19 面试题
金融专业个人求职信范文
2013/11/28 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
党风廉政承诺书
2014/03/27 职场文书
《花钟》教学反思
2016/02/17 职场文书
实用求职信模板范文
2019/05/13 职场文书