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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
Python中查看文件名和文件路径
Mar 31 Python
python批量修改文件编码格式的方法
May 31 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
python中退出多层循环的方法
Nov 27 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
python写日志文件操作类与应用示例
Jul 01 Python
初学者学习Python好还是Java好
May 26 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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 截取字符串专题集合
2010/08/19 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
jquery checkbox实现单选小例
2013/11/27 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python虚拟环境迁移方法
2019/01/03 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
求职毕业生自荐书
2014/02/08 职场文书
公司员工安全协议书
2014/11/21 职场文书
技能培训通讯稿
2015/07/18 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Python文件的操作示例的详细讲解
2021/04/08 Python