标签 手机号码 下的文章

上篇已经解决了如何大批量查询号码归属地的问题。
此时已经把一批号码资料导出成了csv(部分数据由于录入并不规范,所以存在不少无效错误的数据需要在入库和查询归属地接口前加工处理)
以下需要注意的若干点的备忘:

  1. 处理csv要去掉换行符及包裹数据的双引号;
  2. 文本编码,建议统一处理为utf-8;
  3. 多个csv 遍历建议处理完后移动或标记文件,避免遇错中断时无法分辨哪些数据已经处理;
  4. phone调用返回结果可能为None(归属地库无匹配);
  5. 手机号码合法性检查(长度、组成);
  6. 客户端或用户录入可能会自动在手机号码间插入字符“ ”或“-”, 例如 138-0013-8000;


- 阅读剩余部分 -

需要一个精确到城市且保持更新的归属地库,以下收集了一些,纯备忘不推荐

线上接口

免费接口(淘宝)

https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13922121234

返回

__GetZoneResult_ = {
    mts:'1392212',
    province:'广东',
    catName:'中国移动',
    telString:'13922121234',
    areaVid:'30517',
    ispVid:'3236139',
    carrier:'广东移动'
}

缺点:只精确到省份和运营商

付费接口(NOWAPI)

https://www.nowapi.com/api/phone.get

免费版每小时 200次请求频率限制,
缺点:收费,不支持批量

其他还有很多类似的接口没有继续再试下去,被贫穷勒住了命运的咽喉的我..决定换个思路

下载归属地库

果不其然这思路也不是什么蓝海处女地,搜索之下已经被各路数据商人开发过了,一个一个“2020最新归属地库”待价而沽

中间浪费的时间略... 兜转许久又回到python门前。 找到了 phone库

https://github.com/ls0f/phone

安装

pip install phone

代码

from phone import Phone
p = Phone()
res = p.find('13922121234')

print(res)
print(res["city"])

输出

{'phone_type': '移动', 'city': '广州', 'phone': '13922121234', 'area_code': '020', 'province': '广东', 'zip_code': '510000'}
广州
进程已结束,退出代码 0

虽然数据库不是非常的新(2018.10) 够用而且可以本地跑,爱怎么批量或高并发都没关系,性能没有后顾之忧了。

*有点跑题,不改了

之前备忘了php 的,也把js的写一下吧,懒得费脑子写连记住都觉得浪费能源。

//验证手机号合法性
function valid_phone(phone){
    var flag = false;
    var myreg = /^(1[3-9]{1}[0-9]{9})$/;
    if (phone == '') {
        console.log("手机号码不能为空");
        //errmsg = "手机号码不能为空!";
    } else if (phone.length != 11) {
        console.log("请输入11位手机号码!");
        //errmsg = "请输入11位手机号码!";
    } else if (!myreg.test(phone)) {
        console.log("请输入有效的手机号码!");
        //errmsg = "请输入有效的手机号码!";
    } else {
        flag = true;
    }
    return flag;
}

errmsg 和 console.log 输出都是没用的,只是以防需要额外的交互。