Я написал bash script, который выводится с веб-сайта с использованием curl и выполняет кучу строковых манипуляций на выходе html. Проблема заключается в том, что я запускаю его на сайте, который возвращает свой вывод gzipped. Переход на сайт в браузере отлично работает.
Когда я запускаю завиток вручную, я получаю 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, потому что script работает как есть на других сайтах, а прохождение через gzip нарушит эту функциональность.
Что я пробовал
- изменение пользовательского агента (я попробовал ту же строку, что и мой браузер, "Mozilla/4.0" и т.д.)
- человек завиток
- google search
- поиск stackoverflow
Все вышло пустым
Любые идеи?