【Chapter2】LWP的Simple

 

LWP的Simple用于实现基本的HTTP方法,Simple的接口简单,也只能实现一些基本的操作。

 

【getstore抓页面并保存】

例2-1 getstore抓页面并保存

#!usr/bin/perl

use LWP::Simple;

 

my $url='http://www.sina.com.cn’;

my $file='/web.html';

 

my $status=getstore($url,$file);

 

运行完了神马都木有显示,不过在路径下生成了一个web.html,打开一看就是我们的URL的页面。

 

为了显示抓取是否成功,加一行

 

print "Success $status on $url" if is_success($status);

 

status在200-299之间都是true,打印出来:

status在400-599之间都是false。

【getprint打印】

将2-1的代码改一改

 

my $status=getprint($url);

结果是将页面打印出来:

 

如果用get呢?

my $status=get($url);

结果跟getprint是一样的......- -#一样的干嘛要用两个函数。哦,返回值不一样。

 

【使用head方法】

例2-2 head方法

#!usr/bin/perl

use LWP::Simple;


my $url='http://hi.csdn.net/space.php';
my $file='web.html';
my $is_success = head($url);

die "failed on $url" unless head($url);
print "$is_success.";

打印出来是:

 

这是个神马东西呢?在列表上下文环境中,head函数在请求成功时会返回一个五元组:
(content_type, document_length, modified_time, expires, server)=head(url);

如上图所示的一个列表。列表上下文环境中,如果head函数请求失败时,返回为空列表。

那么我们来打印一下看看,

 

my ($param1,$param2,$param3,$param4,$param5) = head($url);
print "$param1/n,$param2/n,$param3/n,$param4/n,$param5.";

好多地方都是空的哦,不过,有内容的两个可以得知,一个是MIME类型,一个是SERVER。

 

【head的更多用法】

例2-2 看看head里面的最后修改时间

#!usr/bin/perl
use strict;
use LWP::Simple;

my $moment = time();
foreach my $url (
'http://bbs.auxten.com',
'http://www.sina.com.cn',
)
{
print "/n$url/n";

my ($type, $length, $mod) = head($url);

print "That $type document is ", $length || "???", " bytes long./n";
if ($mod) {
my $ago = $moment-$mod;
print "It was modified $ago seconds ago; that’s about ",
int(.5 + $ago / (24 * 60 * 60)), " days ago, at ",
scalar(localtime($mod)), "!/n";
} else {
print "I don’t know when it was last modified./n";
}
}

 

打印出来是这样滴

有的拿不到最后修改时间,不知道为什么。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值