加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl的LWP模块简单介绍

发布时间:2020-12-15 23:54:11 所属栏目:大数据 来源:网络整理
导读:一 LWP::Simple 功能 1. 如何在Perl中使用该模块? use LWP::Simple; 2. 如何获取一个页面内容? my $content = get(’http://www.yahoo.com.cn’); get函数把从www.yahoo.com.cn上获取得页面内容全部赋给$content这个变量,如果获取失败将返回一个undef的值

一 LWP::Simple 功能

1. 如何在Perl中使用该模块?

use LWP::Simple;

2. 如何获取一个页面内容?

my $content = get(’http://www.yahoo.com.cn’);

get函数把从www.yahoo.com.cn上获取得页面内容全部赋给$content这个变量,如果获取失败将返回一个undef的值。

3. 如何获取头(Header)?

my (b,d,$e) = header(’http://www.yahoo.com.cn’);

如果获取成功header函数将返回五个变量,$a-e分别代表内容类型,文档长度,最后更新的时间,过期和服务器名称。

4. 如何输出指定页面内容?

my $code = getprint(’http://www.yahoo.com.cn’);

getprint将试图打印www.yahoo.com.cn的内容,然后返回一个状态号,比如成功将返回200,文件没有找到将返回404。

5. 如何把获取的内容保存到一个文件中?

my $code = getstore(’http://www.yahoo.com.cn’,‘/path/file.html’);

getstore将试图把获取的内容保存到第二个参数指定的文件中,返回一个状态号,状态号的形式如上。

6. 如何同步远程和本地文件?

my $code = mirror(’http://www.yahoo.com.cn’,'/path/file.html’);

mirror函数将比较远程和本地文件的一致性,然后返回一个状态号,比如文件相同将返回304,如果本地文件同步成功将返回200。

7. 如何测试返回状态的正确性?

is_success($code)
is_error($code)

is_success和is_error这两个函数可以传递一个状态号为参数,程序会判断返回的是否为成功状态。比如is_success(403)将返回假。

二 LWP::UserAgent 功能
1、取得页面头信息

#!/usr/bin/perluse strict;
use warnings;
use LWP::UserAgent;my $ua = LWP::UserAgent->new;
$ua->agent(’spider name’);
my $res = $ua->head(’http://www.yahoo.com.cn’);
foreach ($res->header_field_names) { print “$_: “,$res->header($_),“n”;}

2、获取指定页面

my $ua = LWP::UserAgent->new;
$ua->agent(’spider name’);
my $response = $ua->get(’http://www.yahoo.com.cn’);

3、POST方式提交数据

use strict;
use warnings;
use LWP 5.64;
my $browser = LWP::UserAgent->new; my $word = ‘tarragon’; my $url = ‘http://www.altavista.com/sites/search/web’;
my $response = $browser->post( $url,
[ ‘q’ => $word,# the Altavista query string
‘pg’ => ‘q’,‘avkw’ => ‘tgz’,‘kl’ => ‘XX’,
]
);
die “$url error: “,$response->status_line
unless $response->is_success;
die “Weird content type at $url — “,$response->content_type
unless $response->content_type eq ‘text/html’;

4、通过get方式提交数据

use URI;
my $url = URI->new( ‘http://us.imdb.com/Tsearch’ );
# makes an object representing the URL $url->query_form( # And here the form data pairs:
‘title’ => ‘Blade Runner’,
‘restrict’ => ‘Movies and TV’,
); my $response = $browser->get($url);

三、HTTPS的支持
需要安装Crypt::SSLeay协议,以便支持加密传输。
命令行PPM下的安装:
ppm> install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
图形化下面的安装:
点击Edit->Preferences,Add Repository,添加http://theoryx5.uwinnipeg.ca/ppms/作为安装源。再选择Crypt-SSLeay即可。 测试代码:

use strict; use warnings; use LWP::UserAgent;my $url = ‘https://www.helsinki.fi/’;my $ua = LWP::UserAgent->new; my $response = $ua->get( $url );$response->is_success or die “Failed to GET ‘$url’: “,$response->status_line; print $response->as_string;?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读