如何用python批量生成真实的手机号码
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:Python测试社区
1目 标 场 景
平时在工作过程中,偶尔会需要大量的 手机号码,去测试一些具体的业务功能,为了保证测试的有效性,手机号码的 真实性 尤为的重要。
那如何按要求 批量生成 一些真实的手机号码呢?
本篇文章的目的是带大家利用 Python 批量生成手机号码。
2编 写 代 码
要批量生成手机号码,首先需要了解 11 位手机号码的组成规律,即:
- 手机号码一共有 11 位,以 1 开头
- 第 2 位的数值是 3、4、5、7、8 中的一个
- 第 3 位根据第 2 位的数字,对应运营商的生成规律
- 后 8 位是随机生成的 8 个数字
知道手机号码的组成规律后,接着把数字拼接起来,即可以生成一个手机号码
由于三大运营商的号段一直在更新变化,上面组成的手机号码也有可能不是一个有效的号码。
为了保证号码的真实性,利用号码去获取 手机号码归属地,如果能获取到归属地,即代表为一个真实有效的号码。
淘宝和百度都提供了查询归属地的 API,可以非常方便的查询号码的归属地。
循环上面的操作,可以生成一些随机的手机号码,正因为生成号码的随机性,使得数据的价值性大打折扣。
如果我需要批量生成指定城市的手机号码,上面的这种方法没法做到。幸运地是,有一个网站(阅读原文)已经实现了这个功能,我们只需要用 Python 模拟请求即可。
选择手机号码归属地、包含号段、数量,就能快速生成我们想要的手机号码,按 F12 可以查看网络请求方式及参数。
请求参数中的区域代码对应选择的省+市区,这部分数据利用 JS 加载到页面中了。
我们只需要解析网页源代码,利用正则表达式查找对应的字符串,解析出 区域 ID 和城市名称。
拿到城市名称和区域 ID 的关系数据后,模拟网络请求,即可以批量生成目标城市的手机号码。
3结 果 结 论
通过上面的操作,就能按照自己的需求,批量生成一些真实有效的手机号码。
接下来,可以结合自动化操作,可以使得我们生成的数据价值最大化。
如何用python批量生成真实的手机号码的更多相关文章
- 用python批量生成简单的xml文档
最近生成训练数据时,给一批无效的背景图片生成对应的xml文档,我用python写了一个简单的批量生成xml文档的demo,遇见了意外的小问题,记录一下. 报错问题为:ImportError: No m ...
- Python批量生成用户名
写在最前 平时在工作中尤其是在做压测的时候难免需要一些用户名和密码,写个简单的Python小脚本批量生成一些 代码示例 import random,string #生成大小字母和数字一起的大字符串 a ...
- python批量生成SQL语句
1,首先写一条能运行成功插入SQL的语句 INSERT INTO sign_guest(realname,phone,email,sign,event_id)VALUES("jack&quo ...
- 如何用Python批量发现互联网“开放”摄像头
现在无论家用还是公司使用摄像头越来越多,但是安全性又如何呐?今天我来说说几款比较常用的摄像头,并且使用python如何批量检查弱口令. 第一个“海康威视”: 前段时间爆出海康威视的摄像头存在默认弱口令 ...
- 在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 htt ...
- python 批量生成xml标记文件(连通域坐标分割)
#!/usr/bin/python # -*- coding=utf-8 -*- # author : Manuel # date: 2019-05-15 from xml.etree import ...
- 如何用python批量翻译文本?
首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...
- 如何用python抓取js生成的数据 - SegmentFault
如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...
- python脚本批量生成数据
在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家 ...
随机推荐
- 为什么我推荐你用Ubuntu开发?
前言: 鱼哥在做多媒体开发时,领导倒逼我们用Ubuntu开发,后来才发现它的牛逼和高效.所以对于还在用Windows上开发的朋友,鱼哥建议,趁周末,搞个双系统,切到Ubuntu上开发, Ubuntu最 ...
- rest_framework序列化,反序列化
序列化组件 from rest_framework.response import Response1.Response本质也是继承了httpresponse,比httpResponse还强大,传入一 ...
- Selenium系列(五) - 键盘操作详细解读
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 题解
原题链接 POJ的链接 简要题意: 给定一张图,求多少个点,每个点都能到达它. 本题作为强连通分量的入门题. 何为强连通分量?有什么用? 下面一一解释. 首先,我们要确认,这道题目如果不用强连通分量而 ...
- 北邮OJ-257- 最近公共祖先-软件14 java
思路分析:思路应该比较简单也很容易想的来,就是比较两个节点的最近的祖先节点,要对每个节点依次记录下他的所有祖先节点,包括其自己,因为自己也算自己的祖先节点,这一点题目中没有明确指出 所以比较坑. 我们 ...
- 使用VS开始一个新项目配置外部库的新手总结
在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为: VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种 ...
- redis的使用及配置
linux环境下redis启动和管理 在redis根目录下执命令 快捷启动默认端口 ./redis-server ../redis.conf 启动redis管理端 ./redis-cli 清理缓存命令 ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之七(四十三)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- centos7中安装redis
http://www.open-open.com/lib/view/open1426468117367.html https://www.cnblogs.com/cndavidwang/p/64294 ...
- codeforces 1038a(找最长的前k个字母出现相同次数的字符串)
codeforces 1038a You are given a string s of length n, which consists only of the first k letters of ...