Python - faker
安装 faker
pip install Faker
pip install Dumper
设置生成器
from faker import Faker fake = Faker()
它可以通过访问以想要的数据类型命名的属性来生成数据
简单的栗子
生成英文名字、英文地址、长文本
from faker import Faker fake = Faker() fake.name() # 'Lucy Cechtelar' fake.address() # '426 Jordy Lodge # Cartwrightshire, SC 88120-6700' fake.text() # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt # amet quidem. Iusto deleniti cum autem ad quia aperiam. # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur # voluptatem sit aliquam. Dolores voluptatum est. # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est. # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati. # Et sint et. Ut ducimus quod nemo ab voluptatum.'
faker 是以 en_US 为默认语言的,如果想要生成中文数据呢?
设置中文语言
from faker import Faker fake = Faker("zh_CN") fake.name() # 吴帅 fake.address() # 上海市霞市黄浦魏路R座 196165
繁体字
fake = Faker("zh_TW")
同时设置多种语言
想同时生成英文、中文的数据呢
from faker import Faker fake = Faker(["en_US", "zh_CN"]) print(fake.name()) print(fake.name()) print(fake.name()) print(fake.name()) print(fake.address()) print(fake.address()) print(fake.address()) print(fake.address()) # 输出结果 温红梅 吴帅 Kathy Howard John Parker 0236 Harmon Tunnel Apt. 878 South Lisa, AL 91400 10434 Christina Manor Veronicachester, ND 40559 上海市霞市黄浦魏路R座 196165 澳门特别行政区红市翔安哈尔滨街j座 663953
Providers
- 每个生成器属性(如 name、address、city)都被称为 fake
- faker generator 有很多,打包在 providers 中
- 所以 providers 有很多种,像 name、address 就所属于不同的 providers
使用不同 providers 的简单栗子
from faker import Faker from faker.providers import internet fake = Faker() fake.add_provider(internet) print(fake.ipv4_private()) # 输出结果 172.26.147.128
但其实不手动 add_provider 也可以的
from faker import Faker fake = Faker() print(fake.ipv4_private()) # 输出结果 172.30.247.147
注意
后面的栗子主要以中文为主
faker.providers.address
# 地址:'甘肃省澳门县崇文黄街s座 319489' fake.address() # 行政单位:'云南省'、'香港特别行政区' fake.administrative_unit() # 楼号:'W座'、'c座' fake.building_number() # 城市:'红霞市'、'成市' fake.city() # 城市名:'六安'、'宁德' fake.city_name() # 城市后缀:'市'、'县' fake.city_suffix() # 国家:'赞比亚'、'瑞士' fake.country() # 国家代号:'NL'、'IL' fake.country_code() # 当前国家代号:'CN' fake.current_country_code() # 当前国家:"People's Republic of China" fake.current_country() # 区:'高明'、'大兴' fake.district() # 邮政编码:'760487'、'211578' fake.postcode() # 省份:'云南省'、'甘肃省' fake.province() # 街道地址:'黄街s座'、'香港街g座' fake.street_address() # 街道名:'廖路'、'澳门路' fake.street_name() # 街道后缀:'街'、'路' fake.street_suffix()
faker.providers.company
# 'iterate integrated e-markets' fake.bs() # 口号:'Networked well-modulated instruction set' fake.catch_phrase() # 公司:'万迅电脑科技有限公司'、'太极传媒有限公司' fake.company() # 公司前缀:'新宇龙信息'、'万迅电脑' fake.company_prefix() # 公司后缀:'传媒有限公司'、'科技有限公司' fake.company_suffix()
faker.providers.internet
# ascii 格式公司邮箱:'cshao@wei.cn'、'yilei@yanyao.com' fake.ascii_company_email() # ascii 格式邮箱:'eliu@yahoo.com'、'ligao@guiyingxiuying.cn' fake.ascii_email() # ascii 格式免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com' fake.ascii_free_email() # ascill 格式安全邮箱:'yqiu@example.com'、'lmo@example.org' fake.ascii_safe_email() # 公司邮箱:'cshao@wei.cn'、'tao59@gi.cn' fake.company_email() # 生成可指定子域级别数的 internet 域名 # domain_name() =》nichols-phillips.com # domain_name(2) =》williamson-hopkins.jackson.com fake.domain_name() # 域名单个单词:'qiu'、'litao' fake.domain_word() # 邮箱:'cshao@example.com'、'yqiu@example.com' fake.email() # 免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com' fake.free_email() # 邮箱域:'yahoo.com'、'gmail.com' fake.free_email_domain() # 生成可指定子域级别数的 host # hostname() =》 db-01.nichols-phillips.com # hostname(0) =》 laptop-56 fake.hostname() # 请求方法:'GET'、'DELETE' fake.http_method() # 图片 url:'https://www.lorempixel.com/788/861'、'https://placeimg.com/530/995/any' fake.image_url() # ipv4:'171.174.170.81'、'95.25.112.121' fake.ipv4() # ipv6:'f728:b4fa:4248:5e3a:a5d:2f35:6baa:9455' fake.ipv6() # MAC地址:'c5:d7:14:84:f8:cf'、'9b:f4:b7:6f:47:90' fake.mac_address() # 端口号:55125、5306 fake.port_number() # 'https://www.wei.cn/explore/category/main/'、'http://wg.cn/explore/categories/terms.html'、'http://www.yongmin.cn/home.php' fake.uri() # uri 扩展:'.php'、'.html' fake.uri_extension() # path:'explore/tag'、'explore/category' fake.uri_path() # url:'https://48.cn/'、'https://xiulan.net/' fake.url() # 'cshao'、'wei76' fake.user_name()
faker.providers.job
# 职业:'列车/地铁车长'、'纸样师/车板工' fake.job()
faker.providers.person
# 名:'秀兰'、'凤兰' fake.first_name() # 女性名:'丽娟'、'雪梅' fake.first_name_female() # 男性名:'坤'、'建平' fake.first_name_male() # 姓:'廖'、'刘' fake.last_name() # 姓名:'廖婷婷'、'刘凤兰' fake.name() # 姓名拼音:'Ping Cheng'、'Wei Tian' fake.romanized_name()
faker.providers.phone_number
# 手机:'18066048764'、'18859382421' fake.phone_number() # 手机前缀:180、159 fake.phonenumber_prefix()
faker.providers.ssn
# 18位中国身份证:'610403196903286049'、'430124195712066470' fake.ssn()
faker.providers.lorem
paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None)
生成一个段落
- nb_sentences:控制段落将包含多少个句子
- variable_nb_sentences:设置为 False 将生成确切数量,而将其设置为 True(默认)将使用 randomize_nb_elements(),随机句子数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.paragraph(nb_sentences=5) ... '论坛报告单位帮助一种报告.设备当然帖子图片分析喜欢.一定详细男人说明本站.关系来源对于首页.不会成为其中通过.' '不同位置内容帮助一点就是语言.一个应该网上手机专业事情游戏标准.能够开始一般作者特别.准备怎么这样国际因为任何历史.只要说明之后不同销售.成为活动上海控制自己标题.' '进行这是有限发布工作系统规定.对于实现不要位置同时个人行业.那个有关重要全部帮助业务.专业电话之后教育.' '公司不过各种介绍积分.人民提供本站规定企业认为.说明服务因为世界一种所有作者.产品信息参加中心.' '不是能够密码信息回复相关发现.市场这样学习内容研究.提供一定价格知道可是语言帮助积分.'
variable_nb_sentences=False
>>> Faker.seed(0) >>> for _ in range(5): ... fake.paragraph(nb_sentences=5, variable_nb_sentences=False) ... '基本全国发现能力电影她的.报告出现完成但是还是.分析喜欢一些当然.有些来自关系来源对于首页提供学习.其中通过感觉不同位置内容帮助一点.' '系列资源其实合作.作品之间任何.男人内容帮助地址能够开始.以及系统他的显示应用文章这里.发生根据是一只要.' '发生功能作者加入成为活动上海控制.或者地区方法.这是有限发布工作.来源历史一般虽然.生产中文社区类型然后到了那个.' '应该其中处理标题出现专业电话.经营谢谢手机可是发表地址业务任何.提供本站规定企业.科技密码说明服务因为世界一种.虽然介绍标题产品.' '需要当前商品.不是能够密码信息回复相关发现.市场这样学习内容研究.提供一定价格知道可是语言帮助积分.报告问题影响谢谢状态.'
一个句子就 5 个单词
ext_word_list
>>> Faker.seed(0) >>> for _ in range(5): ... fake.paragraph(nb_sentences=5, ext_word_list=['abc', 'def', 'ghi', 'jkl']) ... 'Abcjkldefjkljkljkl.Ghijklghidefjklghi.Jklghighighiabc.Ghijklghidef.Defdefghiabc.' 'Defghiabcjkljklabcjkl.Abcdefjklabcdefjklabcghi.Jklabcghiabcjkl.Jkldefdefdefabcdefjkl.Jklghighidefghi.Defabcabcjklabcjkl.' 'Abcghiabcabcabcabcghi.Ghijklghighiabcabcghi.Ghidefghijkljkljkl.Defabcghidef.' 'Abcdefghidefabc.Jklabcabcghiabcghi.Ghiabcabcabcjklabcabc.Abcabcjklabc.' 'Abcjkljklabcdefabcdef.Abcdefdefabcdef.Abcjklabcdefghijkljklabc.'
从 word_list 中取作为单词
paragraphs(nb=3, ext_word_list=None)
生成段落组成的列表
nb:控制生成的段落数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.paragraphs(nb=5) ... ['论坛报告单位帮助一种报告.设备当然帖子图片分析喜欢.一定详细男人说明本站.', '来源对于首页提供.成为其中通过感觉不同位置.', '一点就是语言部门她的简介作品.手机专业事情游戏标准这些.', '以及系统他的显示应用文章这里.发生根据是一只要.', '之后不同销售建设女人国际世界.自己标题发现进行.国内历史出来来源.对于实现不要位置同时个人行业.'] ['生产应该其中处理标题出现专业电话.经营谢谢手机可是发表地址业务任何.提供本站规定企业.', '说明服务因为世界一种所有作者.产品信息参加中心.希望因此内容行业.', '东西实现市场市场这样学习.帖子工作提供一定.目前有些广告有些一样.', '责任在线生活无法.销售不同所以首页.', '今年帮助解决朋友地区支持包括.一直教育企业图片活动拥有为了.结果然后完成是否有限.'] ['这么之间系统学校规定国家.作为可能今年标准阅读.', '安全直接这个以及发现在线由于.当然说明一个工作专业实现他们.世界准备科技技术因此一定.', '成为免费商品一个控制由于.世界为什价格这样.提供是否资源技术.', '加入发表大家经验人民工程电话.美国没有论坛行业.', '次数密码当然论坛您的处理.数据有些其中介绍是一要求之后.什么不过教育.'] ['资料东西论坛生活.国际电子发生的是希望这些这个的人.关系这样实现其他文章的话地方.', '因为发表以上工作任何表示.增加简介音乐正在.使用发展您的内容.', '电子查看有关怎么.', '只有而且一切目前一次.游戏电话控制是否软件不要.所有资源要求论坛次数.方面我的还有社会之间.', '空间发布电影行业国内今天帮助最新.准备科技今年一般应用中国各种.'] ['产品发布大家她的出来设备.使用发展网上工作网站论坛公司.人员国家发布地区当前帖子质量.', '认为这是觉得.一切这么一起要求投资组织其实地方.为什设计很多信息浏览一直.', '一样任何应该目前其实得到这种.内容其中北京功能一种已经.', '安全应该决定商品影响自己一定.', '作品建设这个.继续没有组织有限专业处理解决.这种一次怎么以后作品.']
ext_word_list
>>> Faker.seed(0) >>> for _ in range(5): ... fake.paragraphs(nb=5, ext_word_list=['abc', 'def', 'ghi', 'jkl']) ... ['Abcjkldefjkljkljkl.Ghijklghidefjklghi.Jklghighighiabc.', 'Jklghidefabc.Defghiabcghidefghi.', 'Jklabcjklghijklghighi.Abcdefjklabcghiabc.', 'Defabcdefghijklabcghi.Ghijklghijkl.', 'Ghidefghidefghidefabc.Abcjkldefabc.Jkljkljkljkl.Ghijklghighiabcabcghi.'] ['Defdefghighijkldefdefabc.Ghijklabcghiabcabcjkldef.Abcabcghiabc.', 'Ghiabcabcabcjklabcabc.Abcabcjklabc.Defghiabcghi.', 'Ghijklabcabcdefdef.Ghiabcabcjkl.Defjkldefjklghi.', 'Jklabcabcghi.Ghidefabcdef.', 'Jkljklghidefghiabcghi.Ghidefabcdefabcjkldef.Ghighijkljklabc.'] ['Ghijklabcghighiabc.Ghidefjklghidef.', 'Defghiabcdefdefabcghi.Jklghiabcabcdefjklabc.Abcjklghiabcghijkl.', 'Defabcghiabcjklghi.Abcghiabcdef.Abcjkldefabc.', 'Jklabcdefghijklghiabc.Defabcabcghi.', 'Jkljkljklabcghighi.Ghijklghidefghiabcghi.Abcdefdef.'] ['Defghiabcabc.Defdefghidefdefabcabcabc.Ghidefjkldefabcghidef.', 'Abcabcdefabcdefghi.Jklghidefjkl.Abcabcghiabc.', 'Defghidefdef.', 'Defdefjkldefjkl.Abcabcjkljklabcghi.Abcdefabcabcjkl.Ghiabcdefdefjkl.', 'Jklabcdefghijkldefjkldef.Jklghijklghijklabcghi.'] ['Abcabcdefjkljklghi.Abcabcjklabcabcabcabc.Defabcabcghijklghijkl.', 'Ghighijkl.Jklghijklabcghighijkldef.Ghiabcjklabcjklghi.', 'Ghidefdefdefjkljkldef.Abcghiabcdefjklabc.', 'Defdefjklghighiabcjkl.', 'Ghidefabc.Jklabcghiabcdefghighi.Defjkldefjklghi.']
sentence(nb_words=6, variable_nb_words=True, ext_word_list=None)
生成一个句子
- nb_words:控制句子将包含多少个单词
- variable_nb_words:设置为 False 将生成确切数量,而将其设置为 True(默认)将使用 randomize_nb_elements(),随机单词数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentence(nb_words=10) ... '基本全国发现能力电影她的这样方法设备当然.' '还是还是就是加入一定详细男人说明本站提供服务品牌.' '首页提供学习作品汽车报告希望很多目前觉得.' '一点就是语言部门她的简介作品之间任何关系男人内容帮助.' '这些报告能够以及系统他的显示应用.'
单词数是不固定的
variable_nb_sentences=False
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentence(nb_words=10, variable_nb_words=False) ... '谢谢基本全国发现能力电影她的这样方法设备.' '当然帖子图片分析喜欢一些当然空间中文有些.' '来自关系来源对于首页提供学习作品汽车报告.' '希望很多目前觉得发生可以系列资源其实合作.' '一个应该网上手机专业事情游戏标准这些报告.'
单词数就是10(两个中文相当于一个单词)
ext_word_list
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentence(nb_words=10, ext_word_list=['abc', 'def', 'ghi', 'jkl']) ... 'Jkldefdefghidefjkldefdefghijkl.' 'Abcabcabcjkljklghighighiabcabcabcjkl.' 'Defabcdefghijkljkldefjkldefjkl.' 'Jklabcjklghijklghighijkldefghighiabcjkl.' 'Abcjkljkldefabcdefghijkl.'
sentences(nb=3, ext_word_list=None)
生成句子组成的列表
nb:控制将生成的句子数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentences() ... ['基本全国发现能力电影她的.', '报告出现完成但是还是.', '分析喜欢一些当然.'] ['有些来自关系来源对于首页提供学习.', '其中通过感觉不同位置内容帮助一点.', '系列资源其实合作.'] ['作品之间任何.', '男人内容帮助地址能够开始.', '以及系统他的显示应用文章这里.'] ['发生根据是一只要.', '发生功能作者加入成为活动上海控制.', '或者地区方法.'] ['这是有限发布工作.', '来源历史一般虽然.', '生产中文社区类型然后到了那个.']
指定 nb=5
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentences(nb=5) ... ['基本全国发现能力电影她的.', '报告出现完成但是还是.', '分析喜欢一些当然.', '有些来自关系来源对于首页提供学习.', '其中通过感觉不同位置内容帮助一点.'] ['系列资源其实合作.', '作品之间任何.', '男人内容帮助地址能够开始.', '以及系统他的显示应用文章这里.', '发生根据是一只要.'] ['发生功能作者加入成为活动上海控制.', '或者地区方法.', '这是有限发布工作.', '来源历史一般虽然.', '生产中文社区类型然后到了那个.'] ['应该其中处理标题出现专业电话.', '经营谢谢手机可是发表地址业务任何.', '提供本站规定企业.', '科技密码说明服务因为世界一种.', '虽然介绍标题产品.'] ['需要当前商品.', '不是能够密码信息回复相关发现.', '市场这样学习内容研究.', '提供一定价格知道可是语言帮助积分.', '报告问题影响谢谢状态.']
ext_word_list
>>> Faker.seed(0) >>> for _ in range(5): ... fake.sentences(nb=5, ext_word_list=['abc', 'def', 'ghi', 'jkl']) ... ['Jkldefdefghidefjkl.', 'Jkldefjklabcabc.', 'Jklghidefjkl.', 'Jkldefghijklghidefabcdef.', 'Ghiabcghidefghiabcjkljkl.'] ['Ghidefjklghi.', 'Ghijkldef.', 'Ghiabcjklabcjklabc.', 'Defabcdefghijklabcghi.', 'Ghijklghijkl.'] ['Ghidefabcjkldefabcabcjkl.', 'Ghighidef.', 'Ghiabcabcabc.', 'Jkljklghidef.', 'Defjkljkljklghijklghi.'] ['Defghighijkldefdefabc.', 'Ghijklabcghiabcabcjkldef.', 'Abcabcghiabc.', 'Ghijklghiabcabcabcjkl.', 'Defdefjklabc.'] ['Abcjklghi.', 'Abcjkljklabcdefabcdef.', 'Abcdefdefabcdef.', 'Abcjklabcdefghijkljklabc.', 'Jklabcghijkldef.']
text(max_nb_chars=200, ext_word_list=None)
生成文本字符串
max_nb_chars:控制文本字符串的最大字符数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.text(max_nb_chars=20) ... '一样方面问题这种分析商品组织有关各种.' '决定最新这么要求安全要求还是一点介绍.' '完成但是还有本站文章怎么规定之间发布.' '运行研究有些次数这样人民各种经验日本.' '作者中文信息什么然后一切以下一个一起.'
texts(nb_texts=3, max_nb_chars=200, ext_word_list=None)
生成文本组成的列表
- nb_texts:控制列表将包含多少个文本字符串
- max_nb_chars:控制文本字符串的最大字符数
>>> Faker.seed(0) >>> for _ in range(5): ... fake.texts(nb_texts=5, max_nb_chars=50) ... ['基本全国发现能力电影她的.报告出现完成但是还是.分析喜欢一些当然.', '其中通过感觉不同位置内容帮助一点.系列资源其实合作.作品之间任何.男人内容帮助地址能够开始.', '发生根据是一只要.发生功能作者加入成为活动上海控制.或者地区方法.这是有限发布工作.', '生产中文社区类型然后到了那个.应该其中处理标题出现专业电话.经营谢谢手机可是发表地址业务任何.', '科技密码说明服务因为世界一种.虽然介绍标题产品.需要当前商品.不是能够密码信息回复相关发现.'] ['提供一定价格知道可是语言帮助积分.报告问题影响谢谢状态.发表增加登录可以行业.', '一直教育企业图片活动拥有为了.结果然后完成是否有限.朋友阅读操作一个游戏.', '精华处理安全.联系使用处理.由于单位的话分析制作今天来自.他们控制正在阅读发生只要注意.', '可以分析标题影响作品.所有解决今年美国注意.方法历史必须信息.加入发表大家经验人民工程电话.', '日期名称标准社区谢谢参加为什.数据有些其中介绍是一要求之后.什么不过教育.'] ['知道一切北京电话关系.环境工具关系.精华一下阅读提供当然.教育加入根据因为发表以上工作.', '使用发展您的内容.网络更多国际.责任具有但是技术地址准备搜索.学生知道使用决定.有些那么这是.', '方面我的还有社会之间.一切空间发布电影.国内今天帮助最新以上以上.一般应用中国各种这么.', '的是各种广告加入记者一点使用有限.公司谢谢人员国家发布.当前帖子质量更新认为这是觉得.', '为什设计很多信息浏览一直.显示大家使用完全如此.得到这种这种生活那些.功能一种已经产品安全.'] ['建设这个广告自己自己喜欢必须.处理解决需要她的.方式问题处理或者那些操作当前.', '查看她的世界成功.介绍世界出现经营孩子有些.单位质量如此.一样个人就是政府过程继续规定.', '阅读提供得到比较.深圳学生安全.增加参加系列系统市场知道注册.不能一种最后名称销售开始.', '这么的是程序应用.完全中心方式都是原因.软件不是任何参加.密码原因作为上海特别.详细环境等级本站.', '介绍直接完全说明电子.有限其他安全以下.只有作为发展不同而且到了问题如何.'] ['欢迎生产你们程序.不断中心全国所以原因资料不要.非常作为也是通过一个规定.', '这是基本设计最大.经营信息不过合作一个.由于设备资源相关主要经济.销售产品业务会员资料.', '简介无法新闻科技精华继续责任.不同标准什么时候所有.然后还是合作不会首页阅读.', '个人不会虽然特别谢谢注意表示技术.时间论坛东西准备今年处理.还是认为游戏学习具有.', '成为不是中心点击空间回复应该.欢迎关于通过部门一起.设计发展中心.法律这是设计选择.']
word(ext_word_list=None)
生成一个单词
>>> Faker.seed(0) >>> for _ in range(5): ... fake.word() ... '一样' '方面' '问题' '这种' '分析'
words(nb=3, ext_word_list=None, unique=False)
生成单词组成的列表
- nb:控制单词数
- unique:如果 True,则列表中的单词都是唯一的
>>> Faker.seed(0) >>> for _ in range(5): ... fake.words() ... ['谢谢', '基本', '全国'] ['发现', '能力', '电影'] ['她的', '这样', '方法'] ['设备', '当然', '帖子'] ['图片', '分析', '喜欢']
ext_word_list + unique
>>> Faker.seed(0) >>> for _ in range(5): ... fake.words(nb=4, ext_word_list=['abc', 'def', 'ghi', 'jkl'], unique=True) ... ['jkl', 'def', 'abc', 'ghi'] ['jkl', 'def', 'ghi', 'abc'] ['ghi', 'jkl', 'abc', 'def'] ['ghi', 'abc', 'jkl', 'def'] ['def', 'jkl', 'abc', 'ghi']
faker.providers.user_agent
# 随机生成 user-agent fake.user_agent() # Android:'Android 7.1'、'Android 3.2.3' fake.android_platform_token() # chrome 浏览器:'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.1 (KHTML, like Gecko) Chrome/46.0.833.0 Safari/536.1' fake.chrome() # firefox 浏览器:'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_6_5; rv:1.9.5.20) Gecko/2010-09-09 13:28:06 Firefox/3.6.9' fake.firefox() # IE 浏览器:'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.1)' fake.internet_explorer() # IOS:'iPhone; CPU iPhone OS 7_1_2 like Mac OS X' fake.ios_platform_token() # Linux:'X11; Linux x86_64' fake.linux_platform_token() # MAC 电脑:'Macintosh; U; Intel Mac OS X 10_12_6' fake.mac_platform_token() # safari 浏览器:'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_8 rv:3.0; kk-KZ) AppleWebKit/531.6.3 (KHTML, like Gecko) Version/5.0.1 Safari/531.6.3' fake.safari() # window 电脑:'Windows NT 10.0' fake.windows_platform_token()