本次先使用Python撰写爬虫,将爬取的数据存入数据库最后使用pyecharts进行图表的绘制,可视化地展示58677个IP地址,包括IP地址分类,IP地址归属地分布,IP地址运营商分布。
整体操作是基于Python,我的环境:
Python3.8JetBrains PyCharm 2018.2.2 x64pyecharts 1.9.0
WPS office的官网最新的下载入口怎么找
这里说一句,数据抽取完了其实直接存入数据库即可,我这里是先存入txt文本文件,再读取文本文件写入了excel中,最后手动导入了MySQL数据库,有些多此一举了。
1.查找接口
在百度上搜索IP,百度会给我们提供一个IP138的查询接口
在输入框输入IP,打开F12开发者工具,点击查询按钮wps的免费版的下载网址的方法。
发现点完查询按钮后,浏览器向服务器发送了一个GET请求,服务器返回了一串jQuery字符串,其中data[0]中的location字段为我们需要的IP地址归属地、运营商信息使用空格分隔,请求接口为:
https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=8.8.8.8&co=&resource_id=5809&t=1636340450159&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery1102030225422148935555_1636339389380&_=1636339389385
2.分析接口
对接口参数进行分析,具体操作步骤是:每次删除一组参数,然后放到浏览器去访问,看服务器能否返回需要的数据。
路径:https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php
参数:
query: 8.8.8.8 (要查询的IP地址,必传)
co: (不知什么参数,可以不传)
resource_id: 5809 (资源ID,必传)
t: 1636341598109 (时间戳,可以不传)
ie: utf8 (输入编码,可以不传)
oe: gbk (输出编码,可以不传)
cb: op_aladdin_callback (好像是回调参数,可以不传)
format: json (返回值格式,可以不传)
tn: baidu (提交搜索请求来源,可以不传)
cb: jQuery1102030225422148935555_1636339389380 (返回值类型,可以不传)wps office 的官方的下载的地址怎么找
_: 1636339389386 (也是时间戳,可以不传)
3.确定接口
经过第二步的操作,得到一个可用的接口,返回值类型为json字符串:
https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=8.8.8.8&co=&resource_id=5809
放到浏览器访问,能够得到下图中的结果:
(工具JSON-handle)
1.1数据表
数据表存储了IP、IP归属地、IP运营商信息。
1.2数据量
一共存储了58677个IP地址信息(去重后)。
wps office 官方的下载的入口
这里将所有IP地址进行划分,分出来ABCDE类地址,划分规则如下图。可以看到A类地址占很大比例。
将IP地址归属地信息可视化地标注在地图上(对归属地在国外的IP不做分析展示),山东的IP地址较多,共有12805个,其次是广东、香港、北京。
什么,刚才的地图你没看出来广东、香港和北京占比也很大?那么请看下图。
条形统计图可以清楚地表明各种数量的多少。
统计所有IP地址归属的运营商。通过上面的饼图,能看到教育网占比最大,其次是电信、阿里云。
条形统计图是用条形的长短来代表数量的大小,本文用于分析、展示IP运营商数量。
本次使用Python的pyecharts绘制了饼图、条形图、地图,可视化地将IP地址归属地分布、运营商分布展示出来,代码量不大,pyecharts中都给封装好了,调用其中的接口函数就能够轻易实现,希望大家也动手做起来。如果喜欢这些Echarts图可以到蓝奏云下载。思路、代码方面有什么不足欢迎各位大佬指正、批评!觉得还可以的能点个赞嘛。
wps的电脑版的下载的网站在哪