您的位置:首页 > 其它

Perl模块的手动安装

2009-11-21 16:52 211 查看
在其他论坛看了很多关于Perl模块的安装,其实有时候很容易出现安装失败。

尤其是在WINDOWS上,比如可以使用CPAN,PPM等工具方式。在命令行

中输入CPAN, 弹出CPAN> ,然后可以输入INSTALL 模块名,比如我要安装LWP::UserAgent::ProxyAny

输入install LWP::UserAgent::ProxyAny,可是经常会有错误,这个方式非常麻烦。于是exit;转到PPM,

输入PPM,是可以弹出PPM的工具栏,但是出现错误的几率也很大,而且反应比较慢。怎么办呢?

上面的一个模块是用来进行代理服务器设置的,比如有些网站,在国内被禁用了,我们可以通过一些国外的代理服务器,

进行访问,这个方法会比较容易。

怎么做呢?很简单,在http://search.cpan.org上搜索ProxyAny,
下载LWP-UserAgent-ProxyAny-1.02.tar.gz,

解压缩后,有8个文件。

对于网络上的说法,如果在WINDOWS下,你需要先安装make.exe,放入到system32目录下,可以执行。然后make,

接着make test,有些模块就可以成功了。但是这一模块上面的两种方式都失败。

我发现了一个非常简单的方法,上面模块的意思是在LWP目录下,找UserAgent子目录,然后在这一子目录下找到ProxyAny.pm文件,

我们就可以在相应的位置直接建立需要的目录UserAgent,然后在这个文件夹下把ProxyAny.pm复制到这里,接着测试代码,发现可以

使用了。是不是很方便?

代码如下:

#! perl
#LWP::UserAgent::ProxyAny - A LWP UserAgent supports both HTTP_PROXY and IE proxy
use LWP::UserAgent::ProxyAny;
open(PROXY,"<F:/freeProxy1.txt") or die $!; #freeProxy1.txt文件里面是类似24.98.120.7:8085这样的代理地址列表。
my $ua = LWP::UserAgent::ProxyAny->new;
$ua->env_proxy;
my $response = $ua->get('http://www.ncbi.nlm.nih.gov/pubmed');
while(<PROXY>){
$proxy = $_."";
$ua->set_proxy_by_name($proxy);
if($response->is_success){
print "有效的IP代理为:".$_."/n";
print $response->content;	#or whatever
}else{
print "无效的IP代理为:".$_;
#		die $response->status_line;
}
$ua->set_proxy_by_name("No");
}
#		$ua->set_proxy_by_name("24.98.120.7:8085");
#		print $response->content;
# or set proxy by specified name
close PROXY;


可以把地址修改下,就可以使用代理上网了。

上面是得到相应地址的源代码,进行数据抓取。

上面的Perl脚本,还是不完善,其实不用专门设置代理,只要有$ua->env_proxy这句,表示使用代理,似乎就可以直接访问了,太方便了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: