标点符(钱魏 Way)

使用python来抓取新浪的IP数据

数据分析,特别是网站分析中需要对访问者的IP进行分析,分析IP中主要是区分来访者的省份+城市+行政区数据,考虑到目前纯真IP数据库并没有把这些数据做很好的区分,于是寻找了另外一个可行的方案(当然不是花钱买哈)。解决方案就是抓取新浪的IP数据

新浪的IP数据接口为:

返回的数据为:

其返回的内容中已经包含了省份+城市+行政区信息了,这就是我们真实想要的。

下面就来说说如何来抓取这部分IP数据,要抓取这部分数据的主要工作就是枚举,即将接口中的IP不断的替换,要替换所有的IP地址肯定不太可能,所以我们缩小下范围,只穷举所有中国的IP段。考虑到新浪的IP接口返回的是IP段,所以要穷举的部分又少了一部分。再考虑啊到IP段的最后一位及256个IP基本上都是在一个地区,所以我们要穷举的数据有少了很多。对于穷举最重要的是把IP地址换成INT型。

具体国内有多少IP地址段,可以到APNIC官方网站去查找或下面的文档

http://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst

下面就来看看穷举程序如何写:

当上面的不走完成后就可以对新浪IP接口进行抓取了,抓取代码如下:

到此就能把新浪所有的国内IP数据给抓取出来,然后在数据分析的工程中大派用场。~

码字很辛苦,转载请注明来自标点符《使用python来抓取新浪的IP数据》

评论

  1. bigdude #1

    新浪的ip数据库还不太准,不如抓ip.qq.com上的数据,qq的ip数据库比新浪的准些。我的地区新浪就识别错了。

    回复
    2011-12-2