点击蓝字关注我们
目录
ip地址定位查询接口介绍
批量查询45万个ip地址定位
利用pyecharts绘制城市分布图
ip地址定位查询接口介绍
查询了很多资料,找到了一些ip地址定位查询的接口,基本都是免费的 其中像高德地图、腾讯地图以及百度地图等都提供API接口,只需要注册他们的个人开发者账号即可调用。 因为我这边一共有45万个ip地址需要进行查询(在去重后也有40万+个),对比了这三家地图的api接口后发现 高德支持一天30万次请求,腾讯地图只支持1万次请求每天,百度地图就更少了低于1万次。 所以,我又找到了一家完全免费且不限请求次数的api接口, 太平洋网络IP地址查询web接口(地址:http://whois.pconline.com.cn/) 太平洋网络IP地址查询接口示例: 1
输出结果如下:
1{
另外,高德地图API接口调用方式如下:
1
高德地图API接口还返回了该ip地址所在城市矩形区域范围
1{
批量查询45万个ip地址定位
我试了一下,循环查询45万个ip地址定位,30分钟才跑完3万个左右。如果需要跑完全部,估计在8小时左右,简直太久了。然后一个朋友和我说,可以试试多线程或多进程。好熟悉的名词,但是我木有用过。。 于是,找来官方资料看了下,原来如此啊。于是,我便去尝试了下。果然,4核8 cpu都爆满了,最终45万个ip地址定位结果只用了1小时40余分钟。 静默状态下cpu使用情况多进程下cpu使用情况
1
因为机器是4核8 cpu,这是为啥选择了8份的原因,然后调用进程池…
多进程的标准库
import multiprocessing
1
用multiprocess中的Pool起进程池,进程池中开启的个数:默认是cpu个数
map:可以拿到返回值的可迭代对象,循环就可以获取返回值了
这里除了map也用到了partial方法,因为main()需要传递2个参数,所以先用functools.partial将固定的参数值和main()进行绑定,然后再用map进行循环传参数page
同时有多个任务在执行:
利用pyecharts绘制城市分布图
采用pyecharts的map方法,传入城市及城市对应的数值,即可完成绘制 1
扫描二维码
关注我们
微信号 :AlphaGame