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转换HTML到Text纯文本的方法
Jan 15 Python
Python unittest单元测试框架总结
Sep 08 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
python将txt文件读取为字典的示例
Dec 22 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
python导入坐标点的具体操作
May 10 Python
Python PyCharm如何进行断点调试
Jul 05 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python re模块常见用法例举
Mar 01 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 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
Web程序工作原理详解
2014/12/25 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
div层的移动及性能优化
2010/11/16 Javascript
浅析return false的正确使用
2013/11/04 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
python3代码中实现加法重载的实例
2020/12/03 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
应用艺术专业个人的自我评价
2014/01/03 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
英语专业求职信
2014/07/08 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle