python产生模拟数据faker库的使用详解(下)

举报
泽宇-Li 发表于 2020/11/04 19:38:10 2020/11/04
【摘要】 profile 人物描述信息123456789101112>>> fake.profile(fields=None, sex=None) # 人物描述信息:姓名、性别、地址、公司等{'job': 'Licensed conveyancer', 'company': '万迅电脑信息有限公司', 'ssn': '370684199902182726', 'residence': '福建省小红市南...

profile 人物描述信息

1
2
3
4
5
6
7
8
9
10
11
12
>>> fake.profile(fields = None , sex = None ) # 人物描述信息:姓名、性别、地址、公司等
{ 'job' : 'Licensed conveyancer' , 'company' : '万迅电脑信息有限公司' , 'ssn' : '370684199902182726' , 'residence' : '福建省小红市南长广州街K座 406448' , 'current_location' : (Decimal( '18.050895' ), Decimal( '-0.877117' )), 'blood_group' : '0-' , 'website' : [ 'https://www.yi.org/' , 'https://www.hu.com/' , 'https://www.yin.cn/' ], 'username' : 'minghuang' , 'name' : '后英' , 'sex' : 'F' , 'address' : '安徽省秀荣市璧山嘉禾路T座 954960' , 'mail' : 'czhong@hotmail.com' , 'birthdate' : '1975-03-09' }
>>> s = fake.simple_profile(sex = "m" ) # 人物精简信息
>>> for i,v in s.items():
...   print (i,v)
...
username chao85
name 邴宇
sex M
address 陕西省东市朝阳廖街Y座 757661
mail xiazhang@gmail.com
birthdate 1996 - 09 - 20

ssn 社会安全码(身份证)

1
2
3
4
>>> fake.ssn() # 随机生成身份证号(18位)
'140100196612297997'
>>> len (fake.ssn())
18

user_agent 用户代理

常用在伪造浏览器信息

1
2
>>> fake.user_agent() # 伪造UA
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5361 (KHTML, like Gecko) Chrome/15.0.812.0 Safari/5361'

平台信息伪造

1
2
3
4
5
6
7
8
9
10
>>> fake.linux_platform_token()
'X11; Linux i686'
>>> fake.linux_processor()
'i686'
>>> fake.windows_platform_token()
'Windows CE'
>>> fake.mac_platform_token()
'Macintosh; Intel Mac OS X 10_7_4'
>>> fake.mac_processor()
'PPC'

浏览器伪造

1
2
3
4
5
6
7
8
9
10
>>> fake.internet_explorer() # IE浏览器
'Mozilla/5.0 (compatible; MSIE 5.0; Windows NT 6.1; Trident/4.0)'
>>> fake.opera() # opera浏览器
'Opera/9.37.(Windows 95; doi-IN) Presto/2.9.178 Version/10.00'
>>> fake.firefox() # firefox浏览器
'Mozilla/5.0 (Windows NT 5.0; te-IN; rv:1.9.2.20) Gecko/2015-09-28 13:29:05 Firefox/12.0'
>>> fake.safari() # safari浏览器
'Mozilla/5.0 (Windows; U; Windows NT 4.0) AppleWebKit/533.37.4 (KHTML, like Gecko) Version/5.0 Safari/533.37.4'
>>> fake.chrome() # chrome浏览器
'Mozilla/5.0 (Windows 98; Win 9x 4.90) AppleWebKit/5361 (KHTML, like Gecko) Chrome/14.0.866.0 Safari/5361'

自定义扩展

Faker 已经提供了足够丰富的信息生成,包括名字、手机号、邮箱地址、邮编等等。尽管如此,可能还是没有办法满足你的需求。这时,可以利用自定义扩展,引用外部的 provider,自定义你要的功能。

Faker 对象可以通过 add_provider 方法将自定义的 Provider 添加到对象中,自定义的 Provider 需要继承自 BaseProvider。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from faker import Faker
fake = Faker()
 
# first, import a similar Provider or use the default one
from faker.providers import BaseProvider
 
# create new provider class
class MyProvider(BaseProvider):
   def foo( self ):
     return 'bar'
 
# then add new provider to faker instance
fake.add_provider(MyProvider)
 
# now you can use:
print (fake.foo())

结果显示:

bar

随机控制

Faker 随机生成由 random.Random 驱动。其中,.random 属性返回 random.Random 对象。通过对该对象的操作,可以实现自定义的行为。

1
2
3
4
from faker import Faker
fake = Faker()
fake.random
fake.random.getstate()

安装:

1
pip install faker

使用:

1
2
3
4
from faker import Faker
fake = Faker()
for i in range ( 0 , 10 ):
   print (fake.name())

不做进一步的解释了哈,



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。