ip138对每次查询手机归属地的结果的页面代码做了随机生成的处理,也就是每次html的标签属性可能不一样,这样就对用正则抓取造成困难。同时会随机添加 这样的和注释一样的代码,也会对其它按照Xpath或dom方式的抓取造成干扰。所以决定用HTML::TreeBuilder这个模块来对抓取结果做分析,因为该模块可以用strict_comment()设置为“1”来指定忽略注释。
还有一个就是手机所在地区,如“河北 张家口”里面前半部“河北”两个字显示正常,后半部分“张家口”乱码的问题,这可能和它中间是用 这样的代码来表示空格在解码时出错有关,所以先给要处理的结果部分进行了替换( s/ \;/ /g; )。
具体代码见:
注:ip138对于抓取还是有限制的,一般查询20个就限制再查询了。
阅读(2881) | 评论(0) | 转发(0) |