批量手机号归属地查询
使用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