python利用faker库批量生成测试数据
安装
pipinstallfaker
使用
简单使用
本库可生成姓名、地址、电话、邮箱、公司等等一系列数据。首先导入库,实例化:
fromfakerimportFaker fake=Faker()
先看看正面生成一个人的姓名地址吧:
for_inrange(10): print(fake.name())
rs.ElizabethCarterMD MarkObrien MadelineOliver RuthNewman LoriBennett VictorNolan BethanyMitchell StevenHenderson ShannonBurke ChristopherPacheco MorganHernandez
有时候我们并不想要英文数据,faker库支持中文数据,只需要设置一下。
fromfakerimportFaker 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())#城市
这时候小编需要几万个假人的个人信息数据,就可以这样生成:
fromfakerimportFaker fake=Faker(["zh_CN"]) Faker.seed(0) defget_person(): key_list=["姓名","电话","邮箱","地址","工作单位","职位","城市","银行卡号"] for_inrange(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())#ipv6 print(fake.port_number())#端口号
可以这样生成:
key_list=["域名","链接","资源链接","公司图片链接","ipv4","ipv6","端口号"] for_inrange(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_inrange(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;CPUiPhoneOS4_1likeMacOSX;unm-US)AppleWebKit/534.3.3(KHTML,likeGecko)Version/3.0.5Mobile/8B115Safari/6534.3.3 Mozilla/5.0(Linux;Android6.0)AppleWebKit/535.2(KHTML,likeGecko)Chrome/29.0.807.0Safari/535.2 Mozilla/5.0(X11;Linuxi686;rv:1.9.5.20)Gecko/2020-05-3004:42:27Firefox/3.8 Mozilla/5.0(compatible;MSIE6.0;Windows98;Win9x4.90;Trident/3.0) iPad;CPUiPadOS9_3_6likeMacOSX Opera/8.99.(Windows95;pa-IN)Presto/2.9.164Version/10.00 Mozilla/5.0(Windows;U;WindowsNT6.1)AppleWebKit/535.44.4(KHTML,likeGecko)Version/5.0.5Safari/535.44.4 Mozilla/5.0(Linux;Android7.1)AppleWebKit/535.2(KHTML,likeGecko)Chrome/47.0.877.0Safari/535.2 Mozilla/5.0(X11;Linuxi686)AppleWebKit/535.0(KHTML,likeGecko)Chrome/24.0.891.0Safari/535.0 Mozilla/5.0(Macintosh;U;PPCMacOSX10_10_6;rv:1.9.4.20)Gecko/2019-07-2711:43:09Firefox/11.0 Mozilla/5.0(compatible;MSIE6.0;Windows98;Win9x4.90;Trident/4.1) iPad;CPUiPadOS9_3_6likeMacOSX Opera/9.63.(X11;Linuxx86_64;nl-BE)Presto/2.9.182Version/11.00
代码
fromfakerimportFaker fake=Faker(["zh_CN"]) Faker.seed(0) defget_person(): key_list=["姓名","电话","邮箱","地址","工作单位","职位","城市","银行卡号"] for_inrange(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())#ipv6 #print(fake.port_number())#端口号 #print(fake.paragraph()) #print(fake.profile()) defget_website_info(): key_list=["域名","链接","资源链接","公司图片链接","ipv4","ipv6","端口号"] for_inrange(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) defget_ua(): for_inrange(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()
以上就是python利用faker库批量生成数据的详细内容,更多关于pythonfaker库的资料请关注毛票票其它相关文章!