php的curl中gzip压缩,bash – 如何在使用curl时正确处理gzip压缩的网页?

我写了一个bash脚本,从网站使用curl获取输出,并在html输出上做了一堆字符串操作。问题是当我运行它的一个网站,它返回其输出gzipped。在浏览器中访问网站工作正常。

当我手动运行curl,我得到gzipped输出:

$ curl "http://example.com"

以下是该网站的标题:

HTTP/1.1 200 OK

Server: nginx

Content-Type: text/html; charset=utf-8

X-Powered-By: PHP/5.2.17

Last-Modified: Sat, 03 Dec 2011 00:07:57 GMT

ETag: "6c38e1154f32dbd9ba211db8ad189b27"

Expires: Sun, 19 Nov 1978 05:00:00 GMT

Cache-Control: must-revalidate

Content-Encoding: gzip

Content-Length: 7796

Date: Sat, 03 Dec 2011 00:46:22 GMT

X-Varnish: 1509870407 1509810501

Age: 504

Via: 1.1 varnish

Connection: keep-alive

X-Cache-Svr: p2137050.pubip.peer1.net

X-Cache: HIT

X-Cache-Hits: 425

我知道返回的数据是gzipped,因为这返回html,如预期:

$ curl "http://example.com" | gunzip

我不想管道输出通过gunzip,因为脚本工作原样在其他网站,通过gzip管道会破坏那个功能。

我试过的

>更改user-agent(我尝试过浏览器发送的同一个字符串,“Mozilla / 4.0”等)

>男人卷曲

> google search

>搜索stackoverflow

一切都来了空

有任何想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值