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使用socket向客户端发送数据的方法
Apr 29 Python
python获得一个月有多少天的方法
Jun 04 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
Python os和os.path模块详情
Apr 02 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中Session的概念
2006/10/09 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
js实现小星星游戏
2020/03/23 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python读取网页内容的方法
2015/07/30 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
竞选班干部演讲稿300字
2014/08/20 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
党员发展大会主持词
2015/07/03 职场文书
《圆的周长》教学反思
2016/02/17 职场文书