Perl的WWW::Mechanize返回完整的垃圾(如ðäD=°“lc *Ñ2\ 7õä1û¼Âc{oî'lDNöÓ8ß5o*F2Õ©-õ£z§2ÜÝ1,³íäþwɯÓQÞÆÁS¿IZDKÁ»,ËmÅS1r4!°s,检索页面后,¥4Jl; \J~í2¼)。
我确信它与我尝试下载的特定Web服务器有关。我需要简单的HTML。
以下是代码:
#!/usr/local/bin/perl -w
use WWW::Mechanize;
$url = 'http://www.example.com/brands/';
$mech = WWW::Mechanize->new();
$mech->get($url);
$page = $mech->content();
print "$page\n";
我想这可能是一个编码问题。
有关如何处理此事的任何线索?
谢谢!
答案 0 :(得分:5)
服务器可能正在发送压缩内容。尝试:
$page = $mech->response->decoded_content;
答案 1 :(得分:0)
我花了几天时间打猎。 Mechanize发送一个声称它执行压缩的标头,因此服务器使用压缩数据进行响应,而Mechanize不知道它必须解码。
问题表现为错误“状态读取失败:”
如果你通过安装和使用WWW :: Mechanize :: GZip来强制压缩,那么一切都会正常工作。