找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5433|回复: 3

[求助] 求助各位大大,想写个脚本来批量查询手机号码归属地

1

主题

1

帖子

5

积分

贫民

积分
5
bao9 发表于 2015-9-8 21:13:51 | 显示全部楼层 |阅读模式
求助各位大大,想用ip138的接口来写个Python脚本用来批量查询手机号码归属地的信息,网上找到一个脚本,但是跑不出来信息,不知道为何,新手刚学不太懂。
网上找到的 代码如下:
  1. # coding=UTF-8

  2. # get provider information by phoneNumber

  3. from urllib import urlopen
  4. import re

  5. # get html source code for url
  6. def getPageCode(url):
  7.         file = urlopen(url)
  8.         text = file.read()
  9.         file.close()
  10. #        text = text.decode("utf-8")                # depending on coding of source code responded
  11.         return text

  12. # parse html source code to get provider information
  13. def parseString(src, result):
  14.         pat = []
  15.         pat.append('(?<=归属地:</span>).+(?=<br />)')
  16.         pat.append('(?<=卡类型:</span>).+(?=<br />)')
  17.         pat.append('(?<=运营商:</span>).+(?=<br />)')
  18.         pat.append('(?<=区号:</span>)\d+(?=<br />)')
  19.         pat.append('(?<=邮编:</span>)\d+(?=<br />)')

  20.         item = []
  21.         for i in range(len(pat)):
  22.                 m = re.search(pat[i], src)
  23.                 if m:
  24.                         v = m.group(0)
  25.                         item.append(v)
  26.         return item

  27. # get provider by phoneNum
  28. def getProvider(phoneNum, result):
  29.         url = "http://www.sjgsd.com/n/?q=%s" %phoneNum
  30.         text = getPageCode(url)
  31.         item = parseString(text, result)
  32.         result.append((phoneNum, item))

  33. # write result to file
  34. def writeResult(result):
  35.         f = open("result.log", "w")
  36.         for num, item in result:
  37.                 f.write("%s:\t" %num)
  38.                 for i in item:
  39.                         f.write("%s,\t" %i)
  40.                 f.write("\n")
  41.         f.close()

  42. if __name__ == "__main__":
  43.         result = []
  44.         for line in open("test.txt", "r"):
  45.                 phoneNum = line.strip(" \t\r\n")
  46.                 getProvider(phoneNum, result)
  47.                 print("%s is finished" %phoneNum)

  48.         writeResult(result)
复制代码
求解!!  谢谢了

回复

使用道具 举报

0

主题

4

帖子

14

积分

贫民

积分
14
石头 发表于 2015-10-22 16:20:37 | 显示全部楼层
__author__ = 'xiaobai'
#!/usr/bin/python
#-*-coding:utf-8-*-
import re
import requests

def select_ip(src_ip):
    req=requests.get('http://ip138.com/ips138.asp?ip=%s&action=2' % src_ip)
    result=re.findall(u'<li>(.*)</li><li>(.*)</li>',req.content)
    for i in result:
        print src_ip
        for j in i:
            print unicode(j,"gbk")
select_ip('192.168.1.1')
回复 支持 反对

使用道具 举报

0

主题

4

帖子

14

积分

贫民

积分
14
石头 发表于 2015-10-22 16:21:29 | 显示全部楼层
import re
import requests

def select_ip(src_ip):
    req=requests.get('http://ip138.com/ips138.asp?ip=%s&action=2' % src_ip)
    result=re.findall(u'<li>(.*)</li><li>(.*)</li>',req.content)
    for i in result:
        print src_ip
        for j in i:
            print unicode(j,"gbk")
select_ip('192.168.1.1')
回复 支持 反对

使用道具 举报

0

主题

4

帖子

14

积分

贫民

积分
14
石头 发表于 2015-10-22 17:25:27 | 显示全部楼层
1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表