Telematica/RAE-Scrapper

301 Moved Permanently

Opened this issue · 8 comments

Buenas,

Utilizando la URL "http://lema.rae.es/drae/" de su código me devuelve un 301 Moved Permanently.

Sabe cual es la nueva URL? He estado buscando por internet y no encuentro nada.

Gracias,

dle.rae.es/?w={palabra}

Tengo que actualizar este código, de hecho ya no sirve como tal... Necesitamos utilizar la nueva fuente de datos (endpoint) y construir el Scrapper sobre Goutte o algún HTTP Client

Si tengo tiempo intentare actualizar el código y te hago un pull request.

Aquí dejo una URL que hace fetching a los términos, cargando menos "basura" (más fácil de Scrappear):

http://dle.rae.es/srv/fetch?w={palabra}

e.g. http://dle.rae.es/srv/fetch?w=manijero

... y al parecer es más semántico.

He probado a usar la ultima URL que me pasaste con Guzzle y me devuelve el siguiente mensaje:

La URL solicitada fue rechazada. Por favor, consulte con su administrador. Su número de identificación es: 13982687547941890798

Este es el código que use:

require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client([
'base_uri' => 'http://dle.rae.es',
'timeout' => 2.0,
]);

$response = $client->request('GET', '/srv/fetch?w=puerta');
$body = $response->getBody();
echo $body;

Sabe si se necesita una API key para usar la API?

No hay key, porque la URL no pertenece a ningún endpoint de API (no es un API).

La solución que encontré fue "camuflar" el request, emulando que fue emitido por un Browser, y el HTML con el contenido correcto es arrojado.

Funcionó con 2 headers adicionales:
curl -H "Upgrade-Insecure-Requests:1" -H "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36" -X GET http://dle.rae.es/srv/fetch?w=manijero

UPDATE

curl -H "Upgrade-Insecure-Requests:1" -H "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36" -X GET http://dle.rae.es/srv/search/?w=manijero