免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 291457 | 回复: 3

如何用Perl提取网页的内容 [复制链接]

论坛徽章:
0
发表于 2009-12-10 10:31 |显示全部楼层
5可用积分
我想把如下网址的内容提取出来,我就是想提取里面的IP地址和端口号,方便我每次都复制的操作.保存为记事本最好了
我在Google搜索告诉我用LWP::Simple
可是我实在想不出来了.

my $begin="IPort";
my $end="HTTP";
use LWP::Simple;
my $url="http://www.cnproxy.com/proxy1.html";
my $doc=get($url);
$doc=~m/$begin(.*)$end/is;
print $1;#此时的$1可能就是你需要的内容了


在网上学的.可是不行,望高手回复

http://www.cnproxy.com/proxy1.html

最佳答案

查看完整内容

大概看了下,他的端口用JS编码了下。你要自己弄明白端口是怎样编码的。如下脚本get出80和3128端口的IP。# cat getproxy.pl use LWP::Simple;use strict;my $page = get "http://www.cnproxy.com/proxy1.html";for ( split/\n/,$page) { next unless /(\d+\.\d+\.\d+\.\d+).*\(":"\+(q\+d)\)/ or /(\d+\.\d+\.\d+\.\d+).*\(":"\+(z\+b\+k\+q)\)/; my $ip = $1; my @p = split/\+/,$2; my $port = @p > 2 ? 3128 : 80; ...

论坛徽章:
0
发表于 2009-12-10 10:31 |显示全部楼层
大概看了下,他的端口用JS编码了下。
你要自己弄明白端口是怎样编码的。
如下脚本get出80和3128端口的IP。


# cat getproxy.pl
use LWP::Simple;
use strict;

my $page = get "http://www.cnproxy.com/proxy1.html";

for ( split/\n/,$page) {
    next unless /(\d+\.\d+\.\d+\.\d+).*\(":"\+(q\+d)\)/ or /(\d+\.\d+\.\d+\.\d+).*\(":"\+(z\+b\+k\+q)\)/;

    my $ip = $1;
    my @p = split/\+/,$2;
    my $port = @p > 2 ? 3128 : 80;

    print "$ip:$port\n";
}


# perl getproxy.pl
72.246.25.33:80
203.178.133.3:3128
122.252.60.10:80
174.142.104.57:3128
72.246.103.42:80
72.246.220.10:80
77.87.124.102:80
62.233.138.180:3128
148.233.239.23:3128
72.246.25.18:80
64.212.198.38:80
209.8.115.120:80
202.144.79.6:80
72.246.25.9:80
12.24.45.100:80
64.73.37.166:80
72.247.24.10:80
209.8.115.127:80
209.8.115.113:80
204.213.179.196:80
64.65.64.100:80
24.29.138.26:80
72.246.25.10:80
24.116.134.200:80
72.247.48.10:80
174.36.200.26:3128
72.246.30.57:80
59.124.180.67:80
24.25.26.128:80
24.29.138.66:80
66.154.98.24:3128
216.250.186.99:80
66.232.112.63:3128
72.246.103.56:80
202.157.186.33:80
70.167.151.135:80
199.197.2.163:80
72.9.148.165:3128
64.215.162.7:80
72.246.88.158:80
202.149.76.10:80
205.177.95.97:80
200.65.129.2:80
200.65.129.3:80
88.191.19.92:3128
200.65.129.2:3128
202.149.76.8:80
58.65.173.18:80
219.93.30.37:80
60.254.164.8:80
62.41.85.113:80
82.208.87.232:3128
193.136.3.194:80
116.84.187.131:3128
202.159.216.6:80
202.157.186.30:80
202.166.193.6:80
187.6.209.52:3128
192.118.96.28:80
202.169.46.56:80
194.36.10.154:3128
190.41.180.13:3128
86.51.114.50:80
58.68.6.75:80
88.221.112.10:80

论坛徽章:
0
发表于 2009-12-17 21:44 |显示全部楼层
学习了,for ( split/\n/,$page)

论坛徽章:
0
发表于 2011-07-28 18:01 |显示全部楼层
自从感觉Perl强大之后,我一直在自学Perl,现在感觉版主的能力太强大了。感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP