python利用faker库批量生成测试数据
作者:罗华 发布时间:2021-04-16 10:34:42
标签:python,faker,库,生成,数据
安装
pip install faker
使用
简单使用
本库可生成姓名、地址、电话、邮箱、公司等等一系列数据。首先导入库,实例化:
from faker import Faker
fake = Faker()
先看看正面生成一个人的姓名地址吧:
for _ in range(10):
print(fake.name())
rs. Elizabeth Carter MD
Mark Obrien
Madeline Oliver
Ruth Newman
Lori Bennett
Victor Nolan
Bethany Mitchell
Steven Henderson
Shannon Burke
Christopher Pacheco
Morgan Hernandez
有时候我们并不想要英文数据,faker
库支持中文数据,只需要设置一下。
from faker import Faker
fake = Faker(["zh_CN"])
zh_CN
即代表中文。
需求1
了解一下都有哪些属性:
print(fake.name()) #姓名
print(fake.address()) # 地址
print(fake.phone_number()) #电话
print(fake.email()) #邮箱
print(fake.company()) #公司
print(fake.job()) # 职位
print(fake.building_number()) #哪栋楼
print(fake.city()) # 城市
这时候小编需要几万个假人的个人信息数据,就可以这样生成:
from faker import Faker
fake = Faker(["zh_CN"])
Faker.seed(0)
def get_person():
key_list = ["姓名","电话","邮箱","地址","工作单位","职位","城市","银行卡号"]
for _ in range(20000):
info_list = [fake.name(),fake.phone_number(),fake.email(),fake.address(),fake.company(),fake.job(),fake.city(),fake.credit_card_number()]
person_info = dict(zip(key_list,info_list))
print(person_info)
生成如下数据(只截取了部分):
{'姓名': '廖红霞', '电话': '15087647593', '邮箱': 'xiasong@gmail.com', '地址': '澳门特别行政区丽华市崇文马街F座 187784', '工作单位': '立信电子科技有限公司', '职位': '调研员', '城市': '大冶县', '银行卡号': '630453513933'}
{'姓名': '柏秀梅', '电话': '18215871484', '邮箱': 'xiulan83@hotmail.com', '地址': '广东省兴城市花溪银川路y座 722018', '工作单位': '数字100信息有限公司', '职位': '保险精算师', '城市': '张家港县', '银行卡号': '347515917953308'}
{'姓名': '李龙', '电话': '18656012309', '邮箱': 'dshen@gmail.com', '地址': '青海省沈阳县龙潭合山路L座 508691', '工作单位': '济南亿次元网络有限公司', '职位': '运输经理/主管', '城市': '香港县', '银行卡号': '213145792302255'}
{'姓名': '李桂香', '电话': '14507698456', '邮箱': 'nacai@hotmail.com', '地址': '上海市太原县南长柳州路L座 661093', '工作单位': '思优网络有限公司', '职位': '电脑操作员/打字员', '城市': '秀芳市', '银行卡号': '4027142787890079'}
{'姓名': '龙杰', '电话': '14563812066', '邮箱': 'weichao@qiandeng.cn', '地址': '新疆 * 尔自治区六盘水市普陀长沙街S座 185124', '工作单位': '创汇网络有限公司', '职位': '飞行器设计与制造', '城市': '沈阳县', '银行卡号': '4977658236940223'}
{'姓名': '杨坤', '电话': '13690042294', '邮箱': 'fdu@zhangjiang.net', '地址': '黑龙江省建军市白云荆门路g座 704522', '工作单位': '通际名联科技有限公司', '职位': '美容顾问', '城市': '济南市', '银行卡号': '2284779361534920'}
{'姓名': '黄超', '电话': '13308731764', '邮箱': 'zhengjie@kt.cn', '地址': '澳门特别行政区宇市南溪东莞街z座 638930', '工作单位': '信诚致远网络有限公司', '职位': '研发总监/部长/专家', '城市': '秀芳县', '银行卡号': '2244711801320403'}
{'姓名': '徐丽丽', '电话': '14575868809', '邮箱': 'fpeng@63.cn', '地址': '江西省雪梅县新城王路p座 751744', '工作单位': '明腾科技有限公司', '职位': '机械机床', '城市': '马鞍山市', '银行卡号': '3527912560976700'}
{'姓名': '石磊', '电话': '13125185367', '邮箱': 'wanqiang@qiangyan.cn', '地址': '青海省岩市朝阳李路b座 153751', '工作单位': '鑫博腾飞网络有限公司', '职位': '网站运营专员', '城市': '桂兰县', '银行卡号': '4886841269611610'}
{'姓名': '金淑珍', '电话': '13476607541', '邮箱': 'tianjun@rl.cn', '地址': '内蒙古自治区淮安县永川海门路h座 475420', '工作单位': '雨林木风计算机网络有限公司', '职位': '数控编程', '城市': '晶市', '银行卡号': '3594262235833243'}
{'姓名': '田丽丽', '电话': '13261126486', '邮箱': 'liuqiang@gmail.com', '地址': '山东省涛市魏都郑州街X座 841892', '工作单位': '菊风公司网络有限公司', '职位': '首席财务官 CFO', '城市': '雷县', '银行卡号': '4173407970341489262'}
{'姓名': '马红梅', '电话': '18538640140', '邮箱': 'yangwang@wu.cn', '地址': '海南省长春市沙市深圳路d座 448298', '工作单位': '毕博诚信息有限公司', '职位': '浆纱工', '城市': '秀云市', '银行卡号': '4211669728457637780'}
{'姓名': '蔡涛', '电话': '15270930576', '邮箱': 'pengfang@hotmail.com', '地址': '陕西省伟市怀柔苏路N座 316756', '工作单位': '万迅电脑信息有限公司', '职位': '销售助理', '城市': '宇市', '银行卡号': '4566763373906032'}
{'姓名': '孔彬', '电话': '18523949184', '邮箱': 'clin@hotmail.com', '地址': '海南省淑珍市萧山昆明街s座 702163', '工作单位': '思优科技有限公司', '职位': '幕墙工程师', '城市': '平市', '银行卡号': '6540803513853342'}
{'姓名': '卢晨', '电话': '13347530481', '邮箱': 'minzeng@ming.cn', '地址': '江苏省浩县沙湾罗路X座 732455', '工作单位': '四通信息有限公司', '职位': '酒店前台', '城市': '桂珍县', '银行卡号': '374301912633401'}
{'姓名': '林丽丽', '电话': '13741953843', '邮箱': 'pcheng@gmail.com', '地址': '湖南省波市上街秦路j座 423793', '工作单位': '合联电子传媒有限公司', '职位': '加油站工作员', '城市': '凤英县', '银行卡号': '2689577403827786'}
{'姓名': '毛建华', '电话': '13235460305', '邮箱': 'wkong@hotmail.com', '地址': '江苏省建军市牧野上海路c座 351056', '工作单位': '创汇网络有限公司', '职位': '叉车/铲车工', '城市': '昆明县', '银行卡号': '213164887091665'}
{'姓名': '胡玉珍', '电话': '14521532302', '邮箱': 'lqiu@yahoo.com', '地址': '重庆市云县秀英吴路z座 327385', '工作单位': '天开网络有限公司', '职位': '牙科医生', '城市': '成都县', '银行卡号': '6589840761657001'}
{'姓名': '亓建华', '电话': '15543885643', '邮箱': 'xxu@jb.net', '地址': '新疆 * 尔自治区佛山县花溪南宁街z座 162029', '工作单位': '创亿科技有限公司', '职位': '情报信息分析人员', '城市': '慧县', '银行卡号': '4186428212917'}
{'姓名': '曾萍', '电话': '15864440644', '邮箱': 'yan36@hotmail.com', '地址': '陕西省淮安县白云郑街P座 605823', '工作单位': '维旺明信息有限公司', '职位': '生产/营运', '城市': '成县', '银行卡号': '3573781327166449'}
还是可以的吧。
需求2
小编需要一些网站信息数据,先看一下属性
print(fake.domain_name())#域名
print(fake.image_url())#图片链接
print(fake.uri()) #资源
print(fake.url()) #url
print(fake.ipv4())# ipv4
print(fake.ipv6())#ip v6
print(fake.port_number())#端口号
可以这样生成:
key_list = ["域名", "链接", "资源链接", "公司图片链接", "ipv4", "ipv6","端口号"]
for _ in range(200):
info_list = [fake.domain_name(),fake.url(),fake.uri(),fake.image_url(),fake.ipv4(),fake.ipv6(),fake.port_number()]
website_info = dict(zip(key_list,info_list))
print(website_info)
{'域名': 'xialiu.cn', '链接': 'https://www.jiamao.cn/', '资源链接': 'https://www.songhao.com/posts/list/search/about.asp', '公司图片链接': 'https://placekitten.com/676/966', 'ipv4': '52.60.145.21', 'ipv6': '3458:a748:e9bb:17bc:a3f2:c9c0:9c63:16b9', '端口号': 62522}
{'域名': 'peng.cn', '链接': 'https://60.cn/', '资源链接': 'http://fangzeng.cn/posts/category.html', '公司图片链接': 'https://www.lorempixel.com/655/1002', 'ipv4': '4.255.156.194', 'ipv6': 'ec18:8efb:d080:e66e:552f:233b:8c25:166a', '端口号': 26634}
{'域名': 'pingping.cn', '链接': 'https://www.juangao.cn/', '资源链接': 'https://www.22.com/list/privacy/', '公司图片链接': 'https://placekitten.com/801/564', 'ipv4': '115.113.118.232', 'ipv6': 'd344:7490:96fd:35d0:adf2:807:e521:4606', '端口号': 54974}
{'域名': 'mintang.org', '链接': 'https://91.cn/', '资源链接': 'https://www.dongguo.cn/tag/app/about/', '公司图片链接': 'https://placeimg.com/448/92/any', 'ipv4': '132.188.93.127', 'ipv6': '3042:e325:a28f:5ab0:1fdb:8b33:6d5:99e8', '端口号': 15688}
{'域名': 'lei.org', '链接': 'http://www.jiegang.cn/', '资源链接': 'https://www.gang.cn/app/post.htm', '公司图片链接': 'https://www.lorempixel.com/125/956', 'ipv4': '89.10.171.82', 'ipv6': 'e786:ab37:5bca:47be:4298:17c6:3308:fb2e', '端口号': 61632}
{'域名': 'zengfeng.cn', '链接': 'https://www.xiuyingkong.cn/', '资源链接': 'http://www.lin.cn/register.html', '公司图片链接': 'https://placeimg.com/731/795/any', 'ipv4': '112.50.240.108', 'ipv6': '55fe:a08e:143e:2e04:bdd7:d19c:753c:7c99', '端口号': 5989}
{'域名': 'duan.cn', '链接': 'http://pingyu.net/', '资源链接': 'http://daishen.cn/', '公司图片链接': 'https://www.lorempixel.com/327/490', 'ipv4': '29.66.209.53', 'ipv6': 'b3ab:1b2c:df26:f517:66fa:f98a:813:5d58', '端口号': 54817}
{'域名': 'wangfeng.cn', '链接': 'https://www.yangping.cn/', '资源链接': 'http://63.cn/', '公司图片链接': 'https://placeimg.com/170/267/any', 'ipv4': '58.184.19.84', 'ipv6': '3a8:9879:36a9:8d74:de:59f6:50f0:fc2b', '端口号': 309}
{'域名': 'taoqiang.cn', '链接': 'https://www.tao.cn/', '资源链接': 'https://71.net/home.htm', '公司图片链接': 'https://placeimg.com/710/235/any', 'ipv4': '124.19.5.38', 'ipv6': 'ae55:cdff:34ab:18fd:a68:e88f:ad4:415', '端口号': 34035}
{'域名': 'zheng.com', '链接': 'https://www.wantan.cn/', '资源链接': 'https://www.gong.cn/main/main.htm', '公司图片链接': 'https://dummyimage.com/752x191', 'ipv4': '130.163.17.177', 'ipv6': 'fb5e:b866:2640:211e:29f2:c3c8:4505:f4f6', '端口号': 37949}
{'域名': 'yan.cn', '链接': 'http://junxiuying.cn/', '资源链接': 'https://www.87.cn/terms/', '公司图片链接': 'https://dummyimage.com/703x254', 'ipv4': '155.76.90.210', 'ipv6': 'bc18:a40b:55c7:ed9d:4d49:85dd:9ae:dbd0', '端口号': 20403}
{'域名': 'qianglei.org', '链接': 'https://www.30.cn/', '资源链接': 'https://www.xiulanwei.cn/', '公司图片链接': 'https://www.lorempixel.com/171/754', 'ipv4': '198.37.84.161', 'ipv6': '1d71:73e5:5bc7:fdeb:3123:4eff:6e64:8043', '端口号': 8369}
{'域名': 'yaocao.cn', '链接': 'https://www.yanxiong.cn/', '资源链接': 'http://www.dingshen.cn/', '公司图片链接': 'https://placeimg.com/831/866/any', 'ipv4': '26.81.152.72', 'ipv6': '7fa7:4d8a:ff88:ec82:7f99:d274:d562:7386', '端口号': 26475}
{'域名': 'zhang.cn', '链接': 'https://jun.cn/', '资源链接': 'https://www.juan.cn/app/main/privacy.html', '公司图片链接': 'https://www.lorempixel.com/460/267', 'ipv4': '92.181.175.8', 'ipv6': 'ccf7:19ab:2922:fbd8:dca5:b354:54a1:d505', '端口号': 19506}
{'域名': 'minlei.cn', '链接': 'https://www.89.org/', '资源链接': 'https://www.shen.net/list/explore/login/', '公司图片链接': 'https://placekitten.com/478/41', 'ipv4': '75.165.96.250', 'ipv6': '4124:405b:91fc:fe88:81c1:6e99:4d6c:d782', '端口号': 43605}
{'域名': '44.cn', '链接': 'http://www.wm.cn/', '资源链接': 'https://www.91.cn/search/', '公司图片链接': 'https://www.lorempixel.com/722/842', 'ipv4': '30.175.42.3', 'ipv6': 'c734:bb05:788c:31f6:19fa:a06f:c0a:5967', '端口号': 19840}
{'域名': '99.cn', '链接': 'http://jiexie.cn/', '资源链接': 'http://yongtan.org/', '公司图片链接': 'https://placeimg.com/606/260/any', 'ipv4': '50.205.173.81', 'ipv6': 'f521:ca9f:df5e:6f78:beeb:b4eb:eab9:221b', '端口号': 15932}
需求3
在爬虫过程中我们经常需要更换ua,一个一个去网上找岂不是太麻烦了,现在可以使用这个库直接生成,还可以挑选自己喜欢的浏览器:
for _ in range(20):
print(fake.user_agent())
print(fake.chrome())
print(fake.firefox())
print(fake.internet_explorer())
print(fake.ios_platform_token())
print(fake.opera())
print(fake.safari())
结果如下:
Mozilla/5.0 (iPod; U; CPU iPhone OS 4_1 like Mac OS X; unm-US) AppleWebKit/534.3.3 (KHTML, like Gecko) Version/3.0.5 Mobile/8B115 Safari/6534.3.3
Mozilla/5.0 (Linux; Android 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/29.0.807.0 Safari/535.2
Mozilla/5.0 (X11; Linux i686; rv:1.9.5.20) Gecko/2020-05-30 04:42:27 Firefox/3.8
Mozilla/5.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Trident/3.0)
iPad; CPU iPad OS 9_3_6 like Mac OS X
Opera/8.99.(Windows 95; pa-IN) Presto/2.9.164 Version/10.00
Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/535.44.4 (KHTML, like Gecko) Version/5.0.5 Safari/535.44.4
Mozilla/5.0 (Linux; Android 7.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/47.0.877.0 Safari/535.2
Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.0 (KHTML, like Gecko) Chrome/24.0.891.0 Safari/535.0
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_10_6; rv:1.9.4.20) Gecko/2019-07-27 11:43:09 Firefox/11.0
Mozilla/5.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Trident/4.1)
iPad; CPU iPad OS 9_3_6 like Mac OS X
Opera/9.63.(X11; Linux x86_64; nl-BE) Presto/2.9.182 Version/11.00
代码
from faker import Faker
fake = Faker(["zh_CN"])
Faker.seed(0)
def get_person():
key_list = ["姓名","电话","邮箱","地址","工作单位","职位","城市","银行卡号"]
for _ in range(200):
info_list = [fake.name(),fake.phone_number(),fake.email(),fake.address(),fake.company(),fake.job(),fake.city(),fake.credit_card_number()]
person_info = dict(zip(key_list,info_list))
print(person_info)
# print(fake.name()) #姓名
# print(fake.address()) # 地址
# print(fake.phone_number()) #电话
# print(fake.email()) #邮箱
# print(fake.company()) #公司
# print(fake.job()) # 职位
# print(fake.building_number()) #哪栋楼
# print(fake.city()) # 城市
# print(fake.user_name())
# print(fake.city_name())
# print(fake.credit_card_expire())
# print(fake.credit_card_number())
# print(fake.domain_name())#域名
# print(fake.image_url())#图片链接
# print(fake.uri()) #资源
# print(fake.url()) #url
#
# print(fake.ipv4())# ipv4
# print(fake.ipv6())#ip v6
# print(fake.port_number())#端口号
#print(fake.paragraph())
#print(fake.profile())
def get_website_info():
key_list = ["域名", "链接", "资源链接", "公司图片链接", "ipv4", "ipv6","端口号"]
for _ in range(200):
info_list = [fake.domain_name(),fake.url(),fake.uri(),fake.image_url(),fake.ipv4(),fake.ipv6(),fake.port_number()]
website_info = dict(zip(key_list,info_list))
print(website_info)
def get_ua():
for _ in range(20):
print(fake.user_agent())
print(fake.chrome())
print(fake.firefox())
print(fake.internet_explorer())
print(fake.ios_platform_token())
print(fake.opera())
print(fake.safari())
if __name__ == '__main__':
#get_person()
#get_website_info()
get_ua()
来源:http://www.happyhong.cn/python/10030.html


猜你喜欢
- 通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样:使用 grep/cut 方式:# 查看所有的集群,因
- 为啥要写这个脚本五一前的准备下班的时候,看到同事为了做数据库的某个表的数据字典,在做一个复杂的人工操作,就是一个字段一个字段的纯手撸,那速度
- 本文实例为大家分享了python抓取网页中链接的静态图片的具体代码,供大家参考,具体内容如下# -*- coding:utf-8 -*- #
- 本文内容速览1、绘图数据准备还是使用鸢尾花iris数据集#导入本帖要用到的库,声明如下:import matplotlib.pyplot a
- 连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refe
- 1. 简介 追踪某些软件运行时所发生事件的方法, 可以在代码中调用日志中某些方法来记录发生的事情一个事件可以用一个可包含可选变量数
- /* * zoomCheck */jQuery(function($){ var dCheck = $(&q
- mysql win10 解压缩下载 解压Mysql :版本 5.7.13 下载链接 (通过这个官网zip链接可以直接下载,不用再注册 Ora
- 换了N种字符串连接的方法,终于连接上去了。 共享下用的 Provider=SQLOLEDB.1; User ID=sa; Password=
- 昨天,系统管理员告诉我,我们一个内部应用数据库所在的磁盘空间不足了。我注意到数据库事件日志文件XXX_Data.ldf文件已经增长到了3GB
- 前言Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系
- 函数作用:该函数的作用即按字面意思理解,topk:取数组的前k个元素进行排序。通常该函数返回2个值,第一个值为排序的数组,第二个值为该数组中
- 爬取xxx天气爬取网址:https://tianqi.2345.com/today-60038.htm安装pip install scrap
- 惊现!表面下的隐藏信息——浅谈信息可视化1910年,病卧床上的魏格那(德国气象学家,以“大陆漂移学说”闻名),无意地注视着墙上的世界地图……
- 处理json中不带双引号key问题在解析网页json数据的时候,我发现python标准库json模块无法加载数据。如下面数据import j
- 1. 概述若要将数据库移动或更改到同一计算机的不同 SQL Server 实例,分离和附加数据库会很有用;用户可以分离数据库的数据和事务日志
- 前言学习Python的过程中,我们会遇到Excel的各种问题。下面这篇文章主要给大家介绍了关于python对excel进行数据剔除操作的相关
- mock.js简介官方链接:Mock.js (mockjs.com)前端开发人员用来模拟虚拟数据,拦截ajax请求,方便模拟后端接口安装np
- 首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参
- 本文实例讲述了php函数serialize()与unserialize()用法。分享给大家供大家参考。具体方法如下:该实例主要讲述了php函