unko2ch2000

ヽ( ・∀・)ノ● ウンコー ◆Unko.JS2L2 の日記

PerlからHTTP通信

2004年12月10日 | 日記
GET /unko2ch2000/ HTTP/1.0
Host: blog.goo.ne.jp

HTTP/1.1 200 OK
Date: Fri, 10 Dec 2004 08:40:19 GMT
Server: Apache
Set-Cookie: BLOGTracking=61.125.216.17.1102668019394608; path=/; expires=Mon, 08
-Dec-14 08:40:19 GMT; domain=.blog.goo.ne.jp
X-Powered-By: PHP/4.3.8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html
(略)

というのを
socket(SOCKET,2,1,0);
connect(SOCKET,$name);
print SOCKET "GET /unko2ch2000/ HTTP/1.0";
なんて書いてやるものいいけどもっと簡単な方法を・・・
(とここまで投げやりなのは使い方を理解してないからだったりw)

system("wget $url");
ってやってファイルから読み込むのが一番簡単か?w

はい,まじめに行きます.
参考ページ:http://www.sea-bird.org/doc/Solaris8/Perl_4.html
使うのはLWP::UserAgentとHTTP::Requestかな?
下記の手順でインストールしてくださいな

wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-5.802.tar.gz
tar zxvf libwww-perl-5.802.tar.gz
cd libwww-perl-5.802
perl Makefile.PL
(質問はすべてデフォルトでOK)
make
make install

wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.35.tar.gz
tar zxvf URI-1.35.tar.gz
cd URI-1.35
perl Makefile.PL
make
make install

wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.42.tar.gz
tar zxvf HTML-Parser-3.42.tar.gz
cd HTML-Parser-3.42
perl Makefile.PL
make
make install


ソースコードの例はhttp://www.sea-bird.org/doc/Solaris8/Perl_4.htmlを見てもらうとして
$res->code;でステータスコード
$res->content;でコンテンツの内容が見れたりします

さて,ここでgzip圧縮を使いたいと思うわけですが
$request->accept_encoding('gzip');を指定するのかな?
ということで本題.まず,gzipを使うために下記をインストール

wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Zlib-1.33.tar.gz
tar zxvf Compress-Zlib-1.33.tar.gz
cd Compress-Zlib-1.33
perl Makefile.PL
make
make install

my $res = $ua->request($req);の直前に$req->header('ACCEPT_ENCODING'=>'gzip');を追加
my $res = $ua->request($req);の直後に下記を追加
if($out =~ /^\x1f\x8b\x08/s and $res->header('Content-Encoding') =~ /gzip/i){#
$out = Compress::Zlib::memGunzip($out);
}
終わりw

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (Unknown)
2004-12-10 19:22:37
??? ごめん
返信する