这几天在研究python相关的一些东西,其中涉及的内容包括:
xml的解析,json的解析,urllib的使用,urllib的使用,python中中文编码的问题等
项目托管在Google上,地址是http://code.google.com/p/ipmobile/source/checkout
当然一切都来源于实际工作嘛,首先引入缘由,情景是这样的:
有一个Excel表格,有注册日期,用户ID,注册IP,注册手机号这几个字段,
但现在需要获取注册IP所在的地址 以及手机号所属地区等信息,
并根据这些信息进行分类统计等工作
当然如果在没有编码人员介入的情况下,
需要一个个的到一些网络上的页面上查出地址的信息,然后填到excel里,
而这完全是重复劳动,完全可以抽象并做出系统,在没有人力进行系统开发的情况下,
可以使用简单的脚本进行替代,
本文中,本人使用python脚本进行了相关研究和实验性的工作.用Python写出的代码的可读性非常的高的
首先是一个简单的例子使用过的是有道的接口获取IP和手机号码的地址的
这段代码从有道那获得的结果是xml编码格式为gbk的,所以在编码上我将其先转换成utf8的,然后再通过xml2dict将其转换成Python的字典结构,这样我就可以直接读取节点的值了.
这段代码还使用了urllib模块还有读文件写文件的相关知识点,总体来说还是很简单的,主要就是字符串的拼接了,这里的文件格式都是csv的很容易就可以编程excel的格式
但是问题来了,有的IP地址在有道这里查不出来,而在ip138这个网站上可以查出来,后来试了好多,发现IP138的数据库的数据貌似全一些,但是IP138没有提供任何数据读取的API,那怎么办呢?嘿嘿,那就用最那个的办法了,在脚本里解析使用正则表达式处理html,解析出想要的结果,代码如下:
这里我还提供一个json的可选方案,可惜的是目前我没有发现国内的可以使用json协议获取ip地址信息的API(SOAP的万网好像有个),所以IP的API是使用国外的,手机号码信息查询国内是有API的,可以直接使用,代码非常非常简单,如下: