zz22 发表于 2018-8-31 13:00:02

perl获取手机号码归属地

  大家都知道www.ip138.com可以查手机号码归属地,但总感觉一个一个去查询特别麻烦,今天尝试着用perl写了个小脚本.获取号码归属地和SIM卡的类型.
  


[*]#!/usr/bin/perl -w
[*]use warnings;
[*]use strict;
[*]use LWP::UserAgent;
[*]use HTML::TreeBuilder;
[*]my $ip_url = 'http://www.ip138.com:8080/search.asp?action=mobile&mobile=';
[*]open DATA,"$ARGV";
[*]sub get_html {
[*]      my $browser = LWP::UserAgent->new();
[*]      $browser->agent('Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.1;SV1)');
[*]      my $resp = $browser->get(@_);
[*]#       return ($resp->content,$resp->status_line,$resp->is_success,$resp) if wantarray;
[*]      return unless $resp->is_success;
[*]      return $resp->content
[*]}
[*]while (){
[*]      chomp;
[*]      print "$_\t";
[*]      my $link = $ip_url.$_;
[*]      my $cont = get_html("$link","Accept-language"=>"zh-cn",'Accept-Charset'=>'gb2312',);
[*]      #print "$cont\n";
[*]      my $table = $1 if $cont =~ m/(.*?)/s;
[*]         $table =~ s/&nbsp\;/ /g;
[*]#       print "$table\n";
[*]      my $tree = HTML::TreeBuilder->new();
[*]         $tree->strict_comment(1);
[*]         $tree->parse($table);
[*]         $tree->eof();
[*]      my $tr = ($tree->find_by_tag_name('tr'));
[*]      my $tr1 = ($tree->find_by_tag_name('tr'));
[*]      my @kids = $tr->content_list( );
[*]      my @class = $tr1->content_list();
[*]      print $kids->as_text( ), "\t";
[*]      print $class->as_text(),"\n";
[*]         $tree->delete;
[*]      sleep(1);
[*]}
  结果如下:

  



页: [1]
查看完整版本: perl获取手机号码归属地