スポンサーリンク

このドキュメントの内容は、以下の通りです。

PerlのWWW::Mechanizeモジュールでウェブページを取得をしたときに、コンテンツをprintしたら、読めないわけのわからないデータが表示されました。はじめは、文字コードがヘンなのかもしれないと思ったのですが、レスポンスヘッダを見てみると、Content-Encodingがgzipになっていました。

内容がgzipでは、普通に表示しては読めません。というわけで、Compress::Zlib モジュールを使用します。

Content-Encodingがgzipであるか調べ、gzipの場合は、Compress::Zlibで解凍します。

ソース

use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
$mech->get($url);

...省略

my $r = $mech->submit_form(
		form_name=>'login',
		fields => {
		username => $username,
		password => $password,
	},
);

my $response;
if ($r->content_encoding eq "gzip") {
	        my $src = $r->content();
		        $response = Compress::Zlib::memGunzip($src);
} else {
	        $response = $r->content();
}
print $response, "\n";

こんな感じで、gzipのデータを展開することができます。(自動的にやってくれるやり方があるんでしょうか?)

訂正版


この例よりもマシな方法が解ったので、下記のエントリで訂正します。
[2009-08-06-2]
参照しているページ (サイト内): [2009-08-06-2]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー