perl的LWP模組介紹

來源:互聯網
上載者:User

原文網址: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;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.