curl para descargar https de kickass.so

garlor

estoy intentando descargar una pagina web usando curl, esta es https y no parece funcionar la cosa, lo hago en linux desde linea de comandos no a traves de la libreria php, aparte de eso las opciones son lo mismo hasta donde llego, el problema lo tengo en que https://www.google.com lo descarga sin problemas, pero no asi https://kickass.so

hago un

curl --cacert cert.pem -o web.html https://kickass.so/tv/
y
curl -o web.html -k https://kickass.so/tv/

el .pem lo he sacado del mismo firefox exportando el certificado, pero en teoria con el -k deberia funcionar sin el, la question es que si uso -k con https://www.google.es funciona bien, pero no con kickass, alguna idea?

RaymaN

Puede que kickass tenga capado el acceso al user-agent de curl. Prueba a copiar el de algún navegador.

1 1 respuesta
Amazon

#2 Siempre me ha resultados gracioso que se pueda hacer eso

garlor

lo pego aqui para tenerlo despues

curl -A "http://url.comMozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0" -k -L -o s.html https://kickass.so

si fuera lo del user agent, no me devolveria nada?, o me devolveria algo ininteligible?, esque siempre me devuelve unos html de 12,8KB

garlor

pues no me va :/
probado en 2 maquinas diferentes y con conexiones a internet diferentes

Soltrac

Me encanta scrapear, te hago el código en c#

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("https://kickass.so/tv/");
            webRequest.ProtocolVersion = HttpVersion.Version10;
            webRequest.UserAgent =
                "User-Agent=Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0";
            webRequest.KeepAlive = true;
            webRequest.AllowAutoRedirect = true;
            webRequest.CookieContainer = cc;
            webRequest.Timeout = 30000; 
            webRequest.AutomaticDecompression = DecompressionMethods.GZip; <--- AQUI ESTÁ TU PROBLEMA
            using (HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse())
            {
                using (Stream stream = webResponse.GetResponseStream())
                {
                    using (StreamReader streamReader = new StreamReader(stream))
                    {
                        answer = streamReader.ReadToEnd();
                    }

            }
        }

Como ves, no es un problema de certificados, es un problema de compresión.

1 respuesta
garlor

#6 ok gracias

por si a alguien le interesa hay que añadir a las opciones un "--compressed" , tambien valdria un |gzip o gunzip o lo que sea supongo

Usuarios habituales

  • garlor
  • Soltrac
  • Amazon
  • RaymaN