设为首页 收藏本站
查看: 788|回复: 0

[经验分享] [转] perl的LWP模块介绍

[复制链接]

尚未签到

发表于 2015-12-26 07:27:59 | 显示全部楼层 |阅读模式
  原文网址:http://hi.baidu.com/jackywdx/blog/item/35bb33daedb414dfb7fd4867.html
  一 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将试图打印http://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;  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156370-1-1.html 上篇帖子: perl bless 下篇帖子: perl 处理csv
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表