Curl kullanarak bir web sitesinden çıktı alır ve html çıktısında dize manipülasyon bir sürü yapar bir bash komut dosyası yazdım. Sorun çıktı gzip dönen bir siteye karşı çalıştırdığınızda. Bir tarayıcıda siteye gitmek iyi çalışıyor.
Kıvrımı elle çalıştırdığımda gzip çıktısı alıyorum:
$ curl "http://example.com"
İşte o sitenin başlığı:
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
Bu beklendiği gibi html döndürür çünkü döndürülen veri gzip, biliyorum:
$ curl "http://example.com" | gunzip
Ben gunzip aracılığıyla çıkış boru istemiyorum, çünkü komut dosyası diğer sitelerde olduğu gibi çalışır ve gzip ile boru bu işlevi kıracaktır.
Ne denedim
- kullanıcı aracısını değiştirme (tarayıcımın gönderdiği dizeyi "Mozilla / 4.0" vb. denedim)
- adam kıvırmak
- Google arama
- yığın akışı aranıyor
Her şey boş çıktı
Herhangi bir fikir?
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
) - kaldırarak çözmüşbr
danAccept-Encoding
. bkz. stackoverflow.com/questions/18983719/…