批量手机号归属地查询软件_固定电话号码查询大全「建议收藏」

批量手机号归属地查询软件_固定电话号码查询大全「建议收藏」基于python实现批量手机号归属查询_如何使用python批量查询手机号归属地

批量手机号归属地查询

使用Python进行批量手机号归属地查询

程序代码:

import requests
import re
import xlwt
import os
import sys


# 从文件中获取手机号码列表
def get_phones(fileName):
    result = []
    with open(fileName, 'r') as f:
        line = f.readline()
        while line:
            line = f.readline()
            result.append(line.replace("\n", ""))
    return result


def get_info(phone):
    res = []
    url = f"https://www.haoshudi.com/{ 
     phone}.htm"
    # 伪装自己
    headers = { 
   'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'}
    # 发送请求
    resp = requests.get(url, headers=headers)
    resp.encoding = "UTF-8"
    s = resp.text.replace("\n", "")

    # 利用正则表达式筛选需要的内容
    obj = re.compile(
        r'<span>归属地</span>.*>(?P<province>.*?)</a>(?P<city>.*?)</span>.*<span>运营商</span>.*?<a .*?>(?P<phone_type>.*?)</a>')
    result = obj.finditer(s)
    res.append(phone)
    for item in result:
        res.append(item.group("province"))
        res.append(item.group("city"))
        res.append(item.group("phone_type"))
    return res


def write_xls(xls_file, list):
    wb = xlwt.Workbook(encoding='utf-8')
    # # 添加一个表
    ws = wb.add_sheet('output')
    ws.write(0, 0, label='号码')
    ws.write(0, 1, label='省份')
    ws.write(0, 2, label='城市')
    ws.write(0, 3, label='运营商')
    i = 1
    for item in list:
        ws.write(i, 0, label=item[0])
        if len(item) == 1:
            i = i + 1
            continue
        ws.write(i, 1, label=item[1])
        ws.write(i, 2, label=item[2])
        ws.write(i, 3, label=item[3])
        i = i + 1
    wb.save(xls_file)


if __name__ == '__main__':
    fileName = input("输入需要批量处理的文件(只允许txt文本,一行一个号码):")  # 输入文件
    if not os.path.lexists(fileName):
        print("该文件不存在!")
        sys.exit(0)
    result_file = input("输入输出文件名(结尾xls或xlsx结尾):")  # 输出文件
    phones = get_phones(fileName)  # 读入手机号码
    results = []  # 结果列表
    for item in phones:
        temp = get_info(item)
        print(temp)
        results.append(temp)
    print("查询完成!正在写入...")
    write_xls(result_file, results)  # 写入文件
    print("写入完成!")

经过尝试,其实是可以利用线程池进行加快速度处理,修改main中的

results = []  # 结果列表
    for item in phones:
        temp = get_info(item)
        print(temp)
        results.append(temp)
    print("查询完成!正在写入...")
    write_xls(result_file, results)  # 写入文件
    print("写入完成!")

	pool = mp.Pool(processes=2)
    res = pool.map(get_info, phones)print("查询完成!正在写入...")
    write_xls(result_file, res)  # 写入文件
    print("写入完成!")

注意:经过测试发现,一旦查询的次数太多了,查询的api可能会将你的ip给拦截,需要过段时间才能再次访问。
运行结果:
在这里插入图片描述
导出文件为excel文件

今天的文章批量手机号归属地查询软件_固定电话号码查询大全「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/61630.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注