python利用faker庫批量生成測試資料
阿新 • • 發佈:2020-10-15
安裝
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','郵箱': '[email protected]','地址': '澳門特別行政區麗華市崇文馬街F座 187784','工作單位': '立信電子科技有限公司','職位': '調研員','城市': '大冶縣','銀行卡號': '630453513933'} {'姓名': '柏秀梅','電話': '18215871484','郵箱': '[email protected]','地址': '廣東省興城市花溪銀川路y座 722018','工作單位': '數字100資訊有限公司','職位': '保險精算師','城市': '張家港縣','銀行卡號': '347515917953308'} {'姓名': '李龍','電話': '18656012309','郵箱': '[email protected]','地址': '青海省瀋陽縣龍潭合山路L座 508691','工作單位': '濟南億次元網路有限公司','職位': '運輸經理/主管','城市': '香港縣','銀行卡號': '213145792302255'} {'姓名': '李桂香','電話': '14507698456','郵箱': '[email protected]','地址': '上海市太原縣南長柳州路L座 661093','工作單位': '思優網路有限公司','職位': '電腦操作員/打字員','城市': '秀芳市','銀行卡號': '4027142787890079'} {'姓名': '龍傑','電話': '14563812066','郵箱': '[email protected]','地址': '新疆維吾爾自治區六盤水市普陀長沙街S座 185124','工作單位': '創匯網路有限公司','職位': '飛行器設計與製造','城市': '瀋陽縣','銀行卡號': '4977658236940223'} {'姓名': '楊坤','電話': '13690042294','郵箱': '[email protected]','地址': '黑龍江省建軍市白雲荊門路g座 704522','工作單位': '通際名聯科技有限公司','職位': '美容顧問','城市': '濟南市','銀行卡號': '2284779361534920'} {'姓名': '黃超','電話': '13308731764','郵箱': '[email protected]','地址': '澳門特別行政區宇市南溪東莞街z座 638930','工作單位': '信誠致遠網路有限公司','職位': '研發總監/部長/專家','城市': '秀芳縣','銀行卡號': '2244711801320403'} {'姓名': '徐麗麗','電話': '14575868809','郵箱': '[email protected]','地址': '江西省雪梅縣新城王路p座 751744','工作單位': '明騰科技有限公司','職位': '機械機床','城市': '馬鞍山市','銀行卡號': '3527912560976700'} {'姓名': '石磊','電話': '13125185367','郵箱': '[email protected]','地址': '青海省巖市朝陽李路b座 153751','工作單位': '鑫博騰飛網路有限公司','職位': '網站運營專員','城市': '桂蘭縣','銀行卡號': '4886841269611610'} {'姓名': '金淑珍','電話': '13476607541','郵箱': '[email protected]','地址': '內蒙古自治區淮安縣永川海門路h座 475420','工作單位': '雨林木風計算機網路有限公司','職位': '數控程式設計','城市': '晶市','銀行卡號': '3594262235833243'} {'姓名': '田麗麗','電話': '13261126486','郵箱': '[email protected]','地址': '山東省濤市魏都鄭州街X座 841892','工作單位': '菊風公司網路有限公司','職位': '首席財務官 CFO','城市': '雷縣','銀行卡號': '4173407970341489262'} {'姓名': '馬紅梅','電話': '18538640140','郵箱': '[email protected]','地址': '海南省長春市沙市深圳路d座 448298','工作單位': '畢博誠資訊有限公司','職位': '漿紗工','城市': '秀雲市','銀行卡號': '4211669728457637780'} {'姓名': '蔡濤','電話': '15270930576','郵箱': '[email protected]','地址': '陝西省偉市懷柔蘇路N座 316756','工作單位': '萬迅電腦資訊有限公司','職位': '銷售助理','城市': '宇市','銀行卡號': '4566763373906032'} {'姓名': '孔彬','電話': '18523949184','郵箱': '[email protected]','地址': '海南省淑珍市蕭山昆明街s座 702163','工作單位': '思優科技有限公司','職位': '幕牆工程師','城市': '平市','銀行卡號': '6540803513853342'} {'姓名': '盧晨','電話': '13347530481','郵箱': '[email protected]','地址': '江蘇省浩縣沙灣羅路X座 732455','工作單位': '四通訊息有限公司','職位': '酒店前臺','城市': '桂珍縣','銀行卡號': '374301912633401'} {'姓名': '林麗麗','電話': '13741953843','郵箱': '[email protected]','地址': '湖南省波市上街秦路j座 423793','工作單位': '合聯電子傳媒有限公司','職位': '加油站工作員','城市': '鳳英縣','銀行卡號': '2689577403827786'} {'姓名': '毛建華','電話': '13235460305','郵箱': '[email protected]','地址': '江蘇省建軍市牧野上海路c座 351056','職位': '叉車/剷車工','城市': '昆明縣','銀行卡號': '213164887091665'} {'姓名': '胡玉珍','電話': '14521532302','郵箱': '[email protected]','地址': '重慶市雲縣秀英吳路z座 327385','工作單位': '天開網路有限公司','職位': '牙科醫生','城市': '成都縣','銀行卡號': '6589840761657001'} {'姓名': '亓建華','電話': '15543885643','郵箱': '[email protected]','地址': '新疆維吾爾自治區佛山縣花溪南寧街z座 162029','工作單位': '創億科技有限公司','職位': '情報資訊分析人員','城市': '慧縣','銀行卡號': '4186428212917'} {'姓名': '曾萍','電話': '15864440644','郵箱': '[email protected]','地址': '陝西省淮安縣白雲鄭街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(),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 = ["域名",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()
以上就是python利用faker庫批量生成資料的詳細內容,更多關於python faker庫的資料請關注我們其它相關文章!