每周一数|速领!28万条手机号码归属地大数据

2019-03-15 18:04:23 浏览:37706




第12期  28万条手机号归属地大数据 900×500px (2).jpg


今天小雅问小采一个问题,怎样批量查询采集手机号码归属地?


小采的第一想法是用火车采集器啊,无需复杂编程即可轻松采集。


然而小雅鸡贼的加了个限制,不准用火车头,emmm,这下有点麻烦了,除了火车头还有什么别的办法可以查询呢?





1




今天小采就教大家一个简单实用的小技巧。


timg.gif


❶首先,我们用随机函数,生成一批手机号码,在Excel中模拟,使用函数=RANDBETWEEN(13000000000,13999999999),生成了一批手机号码,如下所示:


微信图片_20190315170039.jpg


❷如果我们一个个查询,只能去网站上面输入手机号,然后得到相应的结果。我们记住网站,然后后面用函数进行抓取。


微信图片_20190315170149.jpg


❸我们首先建议一个辅助列,得到查询这个手机号的网页链接地址,在B2输入公式:="https://shouji.51240.com/"&A2&"__shouji/",批量得到链接地址,如下所示:


微信图片_20190315170154.jpg


然后再使用函数,从网页中抓取数据,并剔除一些没有用的字符串,大家可以看下面截图中的公式使用,如下所示:


微信图片_20190315170158.jpg


便可以得到是哪个运营商,以及该手机号码对应的省份和城市。


如果不理解公式的话,就直接按照上面的步骤操作就好了。这个功能要联网才能实现,在Excel打开的时候,要点击允许连接网络。





2




或者还有一种方法,那就是自己来写代码。首先你要找好几个webapi,然后就用vba写自定义函数,测试下运行还是很正常的。

 

微信截图_20190315171330.png


使用方法具体如下:

1.在本表中直接在A1列输入手机号即可

2.要在其他表中,alt+f11打开vbe编辑器,复制模块中代码,在你的新表中建立模块,粘贴代码即可

3.函数参数说明

GetPhoneInfo(号码,参数)

号码—即单个手机号

参数(1,2,3,4):1-城市,2-省,3-运营商, 4-全部


timg (3).gif

部分代码如下:


Dim ObjXML As Object


 Function GetPhoneInfo(number, Optional para As Byte = 1)

 '获取手机号对应的基本信息 默认为城市

 'para:1-城市,2-省,3-运营商,4,全部

    Dim s As String

    s = GetBody("http://v.showji.com/Locating/showji.com2016234999234.aspx?

    output=json&callback=querycallback&m=" & number)

    Select Case para

    Case 1

        GetPhoneInfo = HtmlFilter(s, "City"":""", """")

    Case 2

        GetPhoneInfo = HtmlFilter(s, "Province"":""", """")

    Case 3

        GetPhoneInfo = HtmlFilter(s, "TO"":""", """")

    Case 4

        GetPhoneInfo = HtmlFilter(s, "City"":""", """") & "," & 

        HtmlFilter(s, "Province"":""", """") & "," & HtmlFilter(s, "TO"":""", """")

    End Select

    GetPhoneInfo = Replace(GetPhoneInfo, " ", "")

End Function


Private Sub Test()

    Dim i&, j&, k&, arr, brr

    url = "http://v.showji.com/Locating/showji.com2016234999234.aspx?

    output=json&callback=querycallback&m=15098051755"

    Debug.Print GetBody(url)

End Sub

'''如果出现乱码,UTF-8可改为GB2312

Public Function GetBody(ByVal url$, Optional ByVal Coding$ = "utf-8")

    On Error Resume Next

    Set ObjXML = CreateObject("Microsoft.XMLHTTP")

    With ObjXML

        .Open "Get", url, False, "", ""

        '.setRequestHeader "If-Modified-Since", "0"

        '.setRequestHeader "User-Agent", _

            ".Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"

        .Send

        GetBody = .ResponseBody

    End With

    GetBody = BytesToBstr(GetBody, Coding)

    Set ObjXML = Nothing

End Function

Public Function BytesToBstr(strBody, CodeBase)

    Dim ObjStream

    Set ObjStream = CreateObject("Adodb.Stream")

    With ObjStream

        .Type = 1: .Mode = 3: .Open:

        .Write strBody: .Position = 0: .Type = 2: .Charset = CodeBase

        BytesToBstr = .ReadText: .Close

    End With

    Set ObjStream = Nothing

End Function

Public Function HtmlFilter(ByVal htmlText$, ByVal Label1$, ByVal label2$)

'返回html字符串lable1和最近的lable2标签中的数据

    Dim pStart As Long, pStop As Long

    pStart = InStr(htmlText, Label1) + Len(Label1)

    If pStart <> 0 Then

        pStop = InStr(pStart, htmlText, label2)

        HtmlFilter = Mid(htmlText, pStart, pStop - pStart)

    End If

End Function









3




本周的每周一数小采为大家带来的就是28万手机号码归属地数据。


第12期  28万条手机号归属地大数据 900×500px.jpg


活动领取资格:火车采集器/火车浏览器商业版(服务年限内)用户。领取时间:发文后5个工作日内(周末工作人员休息)。值得注意的一点是,如果不是服务年限内的商业版用户就无法领取赠送数据哦!


赠送数据字段名:包含ID,手机号,区域,城市,移动运营商,区号,邮编共7个字段名。


赠送数据领取时间:2019年3月15日发文后5个工作日内。


赠送数据领取方式


第一步:扫码添加火车运营微信,运营会第一时间拉你进福利分享群,赶快来和商业用户的大神们一起畅聊吧。





第二步:进群后加数据咨询客服.雅的微信号,验证是否服务年限内商业用户,通过验证后即可领取今日头条大数据。


如果你还知晓更多采集查询手机号归属地的方法,也可以在公众号下方留言分享哦。


扫码关注微信