2009年9月14日 星期一

[Perl] LWP::UserAgent

引用:http://jck11.pixnet.net/blog/post/4902321

LWP::UserAgent是個網頁的代理模組,利用他可以和網頁來進行互動,通常的步驟是
一、建立LWP::UserAgent物件,設定使用者代理程式的型態。
二、建立一個HTTP::Request物件,用來儲存所使用的要求方法(request method)與URL。參考常用的HTTP回應碼
三、使用header方法將必要的標頭加入request物件中。
四、將要求物件傳給使用者代理物件中的request方法,然後解讀與處理傳回的HTTP::Response物件。

看範例
use LWP::UserAgent;
use HTTP::Headers;

my $url="http://www.perl.com/CPAN/SITES.html";
my $agent_name='myagent';
my $ua=LWP::UserAgent->new($agent_name);

my $request=HTTP::Request->new(GET=>$url);

$request->header(Accept=>'text/html');

my $response=$ua->request($request);
print $response->as_string, "\n";



很簡單吧 :)
LWP模組是個物件導向模組(除了LWP::Simple模組例外),並且擅於使用繼承(inheritance)與結合(composition)還兩個功能,例如HTTP::Request物件是HTTP::Message的子類別(subclass),這個子類別又包括了HTTP::Headers物件。

【下列文章您可能也有興趣】

2 則留言:

太陽の西 提到...

那請問一下
以上的程式有辦法套用到PHP網也上嗎?
就是將抓取的結果貼到PHP或html網頁上

還有不太懂HTML他也是套件嗎?
程式執行顯示找不到HTML這個東西

千江有水千江月 提到...

這隻perl 指是把網頁資料抓下來.
至於你要去呈現在php 中, 那就要把perl 抓下來的資料存到檔案或是資料庫.

然後php 在去把資料撈出來.

另外若是要用php 去抓網頁資料,也是可以的. 善用curl 這function 他也可以做到類似功能.