免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3583 | 回复: 8
打印 上一主题 下一主题

求助~~ 关于perl用lwp获取一个 gzip 压缩格式的html网页后,如何还原? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-17 14:59 |只看该作者 |倒序浏览
以下是 头输出,内容我就不知道怎么还原成 html 格式! 求助!



HTTP/1.1 200 OK
Cache-Control: no-cache, must-revalidate
Connection: close
Date: Sun, 17 Aug 2008 06:54:10 GMT
Pragma: no-cache
Server: Apache
Content-Encoding: gzip
Content-Length: 3348
Content-Type: text/html; charset=big5
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Sun, 17 Aug 2008 06:54:10 GMT
Client-Date: Sun, 17 Aug 2008 06:58:04 GMT
Client-Peer: 61.14.155.64:80
Client-Response-Num: 1





例如:
use LWP::UserAgent;

$url="http://www.xxx.com/xxx.php";
$ua = new LWP::UserAgent;
$ua->agent('Mozilla/4.0 (compatible; MSIE 5.00; Windows 9');
my $cookie_jar=HTTP::Cookies->new(file =>"$cgipath/sbcookie.txt",autosave => 1, ignore_discard => 1);
$ua->cookie_jar($cookie_jar);
$req = new HTTP::Request 'GET' => $url;
$req->header('Referer' => $Referer);
$res = $ua->request($req);
$content=$res->content ;


其中, $content 格式是:
Content-Encoding: gzip
Content-Length: 3348
Content-Type: text/html; charset=big5


怎么处理还原成 html 啊?



谢谢高手指点!!

论坛徽章:
0
2 [报告]
发表于 2008-08-17 15:02 |只看该作者
我现在的解决办法是,只能把 $content 保存为 二进制的 .tar 文件。

然后再调用 winrar 去解压缩。好麻烦啊!



我的是在 windows 系统下的。 安装 perl 5.8


我想问如何利用 use Archive::Tar;  去解决? 或者还是有什么办法??



求助!

谢谢!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2008-08-17 15:21 |只看该作者
我没搞过,说说思路:

1,查 LWP 和 HTML::* 模块的手册,并且从 CPAN 上去搜,应该有现成的自动 decode 的模块。
2,如果上面的方法搞不定,就发 HTTP Header Accept 字段给 Web Server,明确表示自己不接受压缩格式。服务器就会给你返回非压缩的版本。
3,如果上面的方法还搞不定,就研究一下怎么用 Archive::* 模块,Perl 里面解压一个字符串不是什么难事儿。

论坛徽章:
0
4 [报告]
发表于 2008-08-17 22:39 |只看该作者
据 2005年的一篇文章说lwp不做decode的工作
不知现在有没有完善

论坛徽章:
0
5 [报告]
发表于 2008-08-18 00:28 |只看该作者
原帖由 flw 于 2008-8-17 15:21 发表
我没搞过,说说思路:

1,查 LWP 和 HTML::* 模块的手册,并且从 CPAN 上去搜,应该有现成的自动 decode 的模块。
2,如果上面的方法搞不定,就发 HTTP Header Accept 字段给 Web Server,明确表示自己不接 ...



谢谢.但是,我不懂找decode 的模块,5555能帮帮我吗?

这个服务器只发送 gzip 的格式而已,不管你接受不接受.所以,方法 2不行啊~~~~

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2008-08-18 10:18 |只看该作者
原帖由 小星2 于 2008-8-18 00:28 发表

谢谢.但是,我不懂找decode 的模块,5555能帮帮我吗?

这个服务器只发送 gzip 的格式而已,不管你接受不接受.所以,方法 2不行啊~~~~

好吧,你出 500 块钱,我帮你做。

论坛徽章:
0
7 [报告]
发表于 2008-08-18 10:23 |只看该作者
原帖由 flw 于 2008-8-18 10:18 发表

好吧,你出 500 块钱,我帮你做。

论坛徽章:
0
8 [报告]
发表于 2008-08-19 10:11 |只看该作者
原帖由 flw 于 2008-8-18 10:18 发表

好吧,你出 500 块钱,我帮你做。


好!!没问题!!! 请加我QQ 343255

论坛徽章:
0
9 [报告]
发表于 2013-03-21 20:20 |只看该作者
咋说的?分享下啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP