我在获取网站内容时收到加密数据。如何克服这个问题?
这是我的剧本。
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent( "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0" );
my $url = "website url";
my $req = HTTP::Request->new( GET => "$url" );
my $res = $ua->request( $req );
my $content = $res->content;
print $content;
答案 0 :(得分:3)
您的输出不是加密,it's encoded。这是使网络上的消息变小的常用方法。想象一个ZIP文件占用较少的空间放在软盘 1 上。
幸运的是,HTTP::Response提供了decoded_content
方法,可以为您完成所有解码魔法。只需将$res->content
替换为$res->decoded_content
。
my $res = $ua->get($url);
my $content = $res->decoded_content;
这只会为您提供已解码的内容。您不需要担心使用何种编码。常见的是 gzip 或 deflate ,但您通常不必担心这一点。
如果您感到好奇,可以dump
整个回复,以便在文字表示中查看标题和(已转义的)内容。
$res->dump;
LWP::UserAgent文档的概要实际上也显示了这一点。
use strict; use warnings; use LWP::UserAgent (); my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; my $response = $ua->get('http://search.cpan.org/'); if ($response->is_success) { print $response->decoded_content; # or whatever } else { die $response->status_line; }
1)对于我们这些记得那是什么的人。对于其他人:看起来像另存为图标
的东西