九.LWP模块
LWP ("Library for WWW in Perl" 的缩写) 是一个由多个模块组成,主要用来获取网络数据的一个模块组。LWP包含有许多模块,通过它我们就可编写perl脚本来访问外部的WEB服务器上的资源了,关于LWP各模块的更多信息可以访问以下地址获得:
这里我们只讲LWP::Simple和LWP::UserAgent这两个模块。
(1)LWP::Simple
否则,返回undef。
■ head($url) — 获取指定URL地址的页面头信息,如果成功则返回($content_type,$document_length,$modified_time,$expires,$server)五个变量值,即依次为内容类型,文档长度,最后更新时间,过期时间和服务器名称。
例如:
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');
sleep(5); #延时5秒
输出结果如下:
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
风云榜</a> | <a href=http://home.baidu.com>关于百度</a> | <a href=http://ir.baid
u.com>About Baidu</a></p><p id=b>©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
(2)LWP::UserAgent
相对LWP::Simple模块而言,LWP::UserAgent模块更为复杂,功能也更为强大。它相当于一个虚拟的浏览器,使用时先创建一个LWP::UserAgent对象,然后再设置其相关参数,接着再创建HTTP::Request实例,并发送请求,最后返回HTTP::Response对象。关于该模块更多的信息可参考以下网址:
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.onunload=function(){};</script></htm
l><!--0e94a8fd6438cdd2-->
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。