Perl 黑客编程

九.LWP模块

LWP ("Library for WWW in Perl" 的缩写) 是一个由多个模块组成,主要用来获取网络数据的一个模块组。LWP包含有许多模块,通过它我们就可编写perl脚本来访问外部的WEB服务器上的资源了,关于LWP各模块的更多信息可以访问以下地址获得:
这里我们只讲LWP::Simple和LWP::UserAgent这两个模块。
 
(1)LWP::Simple
 
LWP::Simple是LWP的一个简单程序接口,它主要有以下函数:
■     get($url) — 获取指定URL地址的网页内容,如果没有发生错误,get 函数返回此网页,
否则,返回undef。
■    head($url) — 获取指定URL地址的页面头信息,如果成功则返回($content_type, $document_length, $modified_time, $expires, $server)五个变量值,即依次为内容类型,文档长度,最后更新时间,过期时间和服务器名称。
■   getprint($url) — 获取并输出指定URL地址的网页内容,它返回一个状态号,比如成功将返回200,文件没有找到将返回404。
■     getstore($url,$file) — 获取指定URL地址的网页内容并保存在文件$file中,返回值为也是状态号。
例如:
use LWP::Simple;
$a=getprint('http://www.baidu.com');
print "/n";
print $a;
print "/n";
my ($b,$c,$d,$e,$f)=head('http://www.baidu.com');
print "$b"."/n"."$c"."/n"."$d"."/n"."$e"."/n"."$f";
getstore('/Article/UploadFiles/200912/20091219145544327.jpg');      
system('riusksk.jpg');      #打开图片
sleep(5);                #延时5秒
unlink('riusksk.jpg');      #删除图片
输出结果如下:
D:/软件>perl riusksk.pl
<html><head><meta http-equiv=Content-Type content="text/html;charset=gb2312"><ti
tle>百度一下,你就知道      </title><style>body{margin:4px 0}
…………省略部分内容
<p style=height:30px><a onClick="this.style.behavior='url(#default#homepage)';th
is.setHomePage('http://www.baidu.com')" href=http://utility.baidu.com/traf/click
.php?id=215&url=http://www.baidu.com>把百度设为主页</a></p><p style=height:14px>
<a href=http://e.baidu.com>加入百度推广</a> | <a href=http://top.baidu.com>搜索
风云榜</a> | <a href=http://home.baidu.com>关于百度</a> | <a href=http://ir.baid
u.com>About Baidu</a></p><p id=b>&copy;2009 Baidu <a href=http://www.baidu.com/d
uty/>使用百度前必读</a> <a href=http://www.miibeian.gov.cn target=_blank>京ICP证
030173号</a> <img src="http://www.toolmao.com/rticle/UploadFiles/200912/20091219145546669.gif></p><map name=mp><area sh
ape=rect coords="43,22,227,91" href=http://hi.baidu.com/baidu/ target=_blank tit
le="点此进入 百度空间"></map></center></body>
…………省略部分内容
</html><!--0e94a8fd6438cdd2-->
200
text/html;charset=gb2312
3520
 
1256476657
BWS/1.0
然后打开下载的图片riusksk.jpg,接着停顿5秒后,再将图片删除。
 
(2)LWP::UserAgent
 
相对LWP::Simple模块而言,LWP::UserAgent模块更为复杂,功能也更为强大。它相当于一个虚拟的浏览器,使用时先创建一个LWP::UserAgent对象,然后再设置其相关参数,接着再创建HTTP::Request实例,并发送请求,最后返回HTTP::Response对象。关于该模块更多的信息可参考以下网址:
首先我们创建一个HTTP用户代理对象:
use LWP::UserAgent;
$user_agent = new LWP::UserAgent;
接着,我们再利用HTTP模块创建一个HTTP请求,请求方式可以为GET或者POST:
$request = new HTTP::Request('GET','http://www.baidu.com');
还可以采用代理的方式执行HTTP请求:
$response = $user_agent->request($request);
例如以下代码:
use LWP::UserAgent;
$user_agent = new LWP::UserAgent;
$request = new HTTP::Request('GET','http://www.baidu.com');
$response = $user_agent->request($request);
open fp,">file.txt";
print fp $response->{_content};
close fp;
执行结果如下:
D:/软件>perl riusksk.pl
 
D:/软件>type file.txt
<html><head><meta http-equiv=Content-Type content="text/html;charset=gb2312"><ti
tle>百度一下,你就知道      </title><style>body{margin:4px 0}p{margin:0;padding:
……省略部分内容
 ('load',function(){w.focus()},true)};window.οnunlοad=function(){};</script></htm
l><!--0e94a8fd6438cdd2-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值