PHP - Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

   
Vista:

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por Natalia (3 intervenciones) el 27/04/2013 17:13:31
Buenas tardes,
estoy trasteando un poco, y quería coger el código fuente de la pagina segundamano.es desde php.

Como en otras ocasiones, he hecho algo tan sencillo como esto:

$url = "http://www.segundamano.es";
print_r(file_get_contents($url));

Pero con esta página me da el error del tílulo:

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Supongo que esta página tiene alguna protección para accesos de este tipo...

¿Alguien me sabría decir como acceder al código fuente de esa página?

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por xve (5523 intervenciones) el 27/04/2013 22:02:03
Hola Natalia, puede ser que tengan bloqueado el acceso desde php con la instrucción file_get_contents()?
Hay otras web, como algunas paginas de facebook que tampoco te funcionaran...

Para ello, te recomiendo que utilices curl
http://www.lawebdelprogramador.com/codigo/PHP/2294-descargar_una_pagina_web_mediante_CURL_en_PHP.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por Natalia (3 intervenciones) el 01/05/2013 13:23:38
Hola xve,
gracias por contestar.

He probado con curl pero no hay manera...

Alguna otra idea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por xve (5523 intervenciones) el 01/05/2013 16:54:55
Hola Natalia, que error te da?
cURL es la herramienta perfecta para lo que quieres hacer...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por Natalia (3 intervenciones) el 01/05/2013 16:58:54
Hola xve.
al final lo he conseguido sacar :)

solo hacía falta definir una cabecera y indicarle un user-agent.

De esta manera engaño al sistema haciendole creer que soy un navegador :D

Con el propio file_get_content lo he conseguido, por si le sirve a alguien de ayuda en el futuro:

1
2
3
4
5
6
7
8
9
10
11
$options = array(
        'http'=>array(
                'method'=>"GET",
                'header'=>"Accept-language: en\r\n" .
                "Cookie: foo=bar\r\n" .  // check function.stream-context-create on php.net
                "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0"
        )
);
 
$context = stream_context_create($options);
$codiFont = file_get_contents("http://".$url, false, $context);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve

Warning: file_get_contents(http://www.segundamano.es): failed to open stream: HTTP request failed!

Publicado por xve (5523 intervenciones) el 01/05/2013 17:55:27
Hola Natalia excelente!!!!! muchas gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar