Python批量查询手机归属地

  • 1.源码
    • 1.1 文件切割以及数据查询部分
    • 1.2 合并部分
  • 2.结果

1.源码

1.1 文件切割以及数据查询部分

import threading
import urllib
import urllib.request# 线程结束的标志
exitFlag = 0
#线程个数
thread_num=0# 文件分割
# 每一百个手机号,放进一个文件里面,依次命名
# 将其放进file_cut文件夹中
# 这里使用的是相对路径,需要自己新建对应的文件夹
f = open("data.txt")             # 返回一个文件对象
fo=open("file_cut/file1.txt","w")
line = f.readline()             # 调用文件的 readline()方法
count=1
while line:print(line)                 # 后面跟 ',' 将忽略换行符fo.write(line)line = f.readline()if count%100==0:fo.close()path='file_cut/file'+str(int(count/100)+1)+'.txt'fo = open(path, "w")count+=1
fo.close()
f.close()# 获取线程数
# 线程的个数等于文件的个数
thread_num=int(count/100)+1# 多线程处理
class myThread(threading.Thread):  # 继承父类threading.Threaddef __init__(self, threadID, name, counter):threading.Thread.__init__(self)self.threadID = threadIDself.name = nameself.counter = counterdef run(self):  # 把要执行的代码写到run函数里面 线程在创建后会直接运行run函数print("Starting " + self.name)phone_ser(self.threadID)print("Exiting " + self.name)
# 用于查询归属地,将返回内容写入对应的文件之中,根据线程的编号
def phone_ser(threadID):file_path='file_cut/file'+str(threadID+1)+'.txt'file_path2='file_com/file'+str(threadID+1)+'.txt'file = open(file_path)file2 = open(file_path2, "w")line = file.readline()while line:url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=' + linereq = urllib.request.Request(url)res = urllib.request.urlopen(req)html = res.read().decode('utf-8')# print(html)file2.write(html)file2.write("\n")line = file.readline()file.close()file2.close()thread=[]
# 循环创建线程
for i in range(0,thread_num):thread_name="Thread"+str(i)temp_thread=myThread(i,thread_name,1)thread.append(temp_thread)# 循环开启线程
for i in range(0,thread_num):thread[i].start()

1.2 合并部分

# 数据整理
import re
file_path2 = 'file_com.txt'
file2 = open(file_path2, "w")
for i in range(0,113):file_path = 'file_com/file' + str(i + 1) + '.txt'file = open(file_path)line=file.readline()while line:pattern = re.compile(r'\"(.*?)\"')str_list = pattern.findall(line)new_line=str_list[1]+" "+str_list[5]+" "+str_list[7]+" "+str_list[11]+"\n"file2.write(new_line)line=file.readline()file.close()file2.close()
# 这一部分的备注比较少,因为在python里面,文件操作确实很简单。

2.结果

file_com存储需要合并的文件【必须要有】
file_cut存储切割之后的文件【必须要有】
data.txt是原始数据,可以直接从excel中进行复制粘贴【必须要有】
file_com.txt是最终要得到的文件【自动生成,可以覆盖】
file_com.py数据合并部分的代码
phonenum.py数据切割及查询部分的代码

file_com文件夹

file_cut文件夹

文件名都一样但是大小不一样,当运行过代码之后一定要生成对应数量的文件。
运行的时候在编译器里面会有[finished]的标志,但是直接用python.exe文件运行是不会有这些的,会自己退出,如果中途卡住,等了好久也不退出,说明该程序可能已经被检测为了爬虫,需要重新启动。
程序尚且有不足之处,没有对于线程卡住的情况进行处理,可以对于每个线程添加时间限制,到时间之后自动结束,然后自动重启,直到该线程结束。
但是上面的机制,还不会写,所以就没有写。

03-0006 Python批量查询手机归属地相关推荐

  1. python批量查询ip归属地_python3.2批量查询IP地址区域

    import urllib.request #jk409  2014-7-31 by python3.4编写用于[批量]查询IP地址国家区域 def chaxun(ip_addr): ip_addr2 ...

  2. python 批量查询网页导出结果_python批量查询网页的HTTP状态码

    最近业余时间在改版一个网站,改版之前频繁调整了一些栏目的属性,包括栏目的层级,这种最怕就是调整了栏目的从属关系,导致了栏目的URL地址改变,一旦改版就导致整个栏目及其下面的文章页地址变更,成为死链.而 ...

  3. python批量查询豆瓣书籍评分(教程附源码)

    在懒人盘分享的高分电子书是利用python批量查询得到的 发现常规的豆瓣api不允许调用了,几番搜索发现一个接口 https://book.douban.com/j/subject_suggest?q ...

  4. 使用Python批量查询ip地址的信息

    使用Python批量查询ip地址的信息 import requests from openpyxl import load_workbook from bs4 import BeautifulSoup ...

  5. python 批量查询网页导出结果_李亚涛:python批量查询网页收录情况并计算收录率...

    想要一个关键词有排名 第一件事就是保证有一个页面布局了这个关键词,而且这个页面已经被收录了. 所以,我们网站在更新一些信息的时候,比如发布资讯,如果没有被收录,那就无法获得排名,也就没办法带来流量. ...

  6. python批量查询数据库_Python + MySQL 批量查询百度收录

    做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...

  7. python在采购中应用_实例13:用Python批量查询采购物料交期及实际收货日期

    我们在实例10中介绍了工程部采购物料用于新产品开发,如何从杂乱的备注栏获取工程采购单号.获取到采购单号,只是第一步,随后还需要查询物料的交期和实际收货日期. 对于负责物料跟进的员工,每个新产品开发订单 ...

  8. 免费的webservice接口 天气预报/IP查询/股票查询/手机归属地等

    搜集了一些公共服务的 Web Service 接口,可以在自己的应用中使用. 来自 www.36wu.com 的服务: 快递查询WEB服务 http://webservice.36wu.com/Exp ...

  9. Excel如何批量查询手机号码归属地

    ​ 1.如下图要求快速查询手机号码归属地 2.首先我们选中手机号码数据区域 3.然后我们点击[DIY工具箱] 4.点击[手机号],选择[手机号查归属地] 5.接着我们点击[确定] ​ 6.最后选择合适 ...

  10. python批量查询steam游戏价格

    最近沉迷游戏的紧,看到HB有个30美元的包,心痒痒的很.于是写个小工具,查下游戏价格: 一.使用方法 首先找到HB网站,将所有游戏的名字提取下来 然后新建一个Name.txt将游戏名粘贴进去,注意每行 ...

最新文章

  1. Spring Batch在大型企业中的最佳实践
  2. ios UIWebView 播放优酷土豆视频
  3. python实验过程心得体会_20192416 实验四《Python程序设计》综合实践报告
  4. 深度解读DynamIQ架构cache的替换策略
  5. Swift4.1第二章 The Basics
  6. pip install 安装报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position XX的解决办法...
  7. 贷款审批时,会重点看征信报告哪些内容?
  8. HTTP 协议知识点总结(一)
  9. 数据结构与算法简单总结()
  10. java压缩文件夹(含有空文件夹)
  11. 手机上图片信息怎么拉一个矩形框_华为手机EMUI系统隐藏的10个功能,上手体验后,实用性无敌了...
  12. linux mutex 数量上限,互斥量mutex
  13. ap 目标检测算法map_目标检测mAP怎么计算
  14. 手机链接路由wifi,设置为固定IP方法
  15. 每天学一点Flash(55) 认识类的结构
  16. [收藏]Linux 常用命令
  17. linux脚本定义量,Linux上增加自定义脚本的展现量
  18. IIS——asp上传文件大小限制
  19. ckpt为savermodel模型并TRT调用的问题
  20. WIN10 windows mobile设备中心连接不上

热门文章

  1. 二叉树 java泛型_java二叉树
  2. 菲利普·安德森:凝聚态物理的艺术家
  3. 百度网盘青春版,免费不限速来了(使用体验)
  4. 基础SQL第二课:约束
  5. P问题、NP问题、NPC问题、NP-hard问题详解
  6. php 获取客户端IP
  7. Zynq-Linux移植学习笔记之13-i2c驱动配置
  8. 浅析HashMap底层原理
  9. 清理电脑里的流氓软件/插件/弹窗
  10. oracle sql列转行_Oracle行转列、列转行的Sql语句总结(转)