Script diccionario RAE para consola que funcione actualmente? (Solucionado)

Imagen de nahuel_111
0 puntos

Buenas. Desde hace tiempo que los scripts para consultar a la rae desde consola dejaron de funcionar. Una lástima, porque me resultaba muy útil, sobre todo por la velocidad con la que obtenía respuesta a la consulta.

He tratado de modificar el que usaba antes y funcionó un tiempo (extremadamente lento) y nuevamente dejó de hacerlo.

Alguien esta usando alguno?

Desde ya gracias.

Saludos

Imagen de barca
+1
0
-1

La distro Guadalinex tiene un programa para consultar en el diccionario de la RAE. Su nombre es Lemurae. Lo puedes descargar de aquí. Es un archivo deb, haz doble click para instalarlo.

Una vez instalado, para ejecutarlo: Aplicaciones-->Accesorios-->Buscador DRAE (LemuRae).

+1
0
-1
Imagen de nahuel_111
+1
0
-1

pero necesito algo que funcione en consola

utilizo yakuaque (que es una terminal precargada que se despliega desde la parte superior de la pantalla de manera instantanea) y es muy practico y rapido acceder al diccionario de esa forma.

de todos modos la voy a instalar. se ve muy interesante. habia visto algo similar en un mac.

+1
0
-1
Imagen de barca
+1
0
-1

1- Tienes que tener instalado elinks

#!/bin/bash
elinks -dump -no-references "http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_ HTML=2&LEMA="$1 | less

2-

#!/bin/bash

## Funciones:

function buscar_palabra {
    echo "Se está buscando la palabra \"$aux\" en la RAE, esto"
    echo "puede tardar dependiendo de la velocidad de su conexión"
    echo ''
    #Aquí puedes utilizar lynx o links2 en lugar de links, y si quieres
    #quitarle el "-dump" para visualizar directamente el navegador
    links2 -dump "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$palabra&origen=RAE"
    echo ''
}

function adaptar_palabra {
    #Pasar a minúsculas
    palabra=$(echo $palabra | awk '{print tolower($0)}')
    #Para poner la palabra por pantalla
    aux=$palabra
    #Cambiar caracteres especiales
    palabra=$(echo $palabra | sed 's/á/%C3%A1/')
    palabra=$(echo $palabra | sed 's/é/%C3%A9/')
    palabra=$(echo $palabra | sed 's/í/%C3%AD/')
    palabra=$(echo $palabra | sed 's/ó/%C3%B3/')
    palabra=$(echo $palabra | sed 's/ú/%C3%BA/')
    palabra=$(echo $palabra | sed 's/ñ/%C3%B1/')
}

## Parte principal:

if test -z $1
then
clear
echo "Diccionario de la RAE"
echo "Introduce la palabra a buscar:"
read palabra
adaptar_palabra
buscar_palabra
else
clear
        palabra=$1
adaptar_palabra
buscar_palabra
fi
+1
0
-1
Imagen de nahuel_111
+1
0
-1

Los acabo de probar y no funcionan

+1
0
-1
Imagen de barca
+1
0
-1

1- Instala el paquete html2text.

2- Crea un archivo de texto y pega este código:

#!/bin/bash
# buscador múltiple del diccionario de la RAE
# introducir rae seguido de los terminos a buscar en inglés

echo RESULTADOS DE BUSQUEDA DE:
echo $@
for i
do
        echo -e ++++++++++++++++++++++++++++++++++++++++++++
        echo -e Diccionario RAE: $i
        echo -e ++++++++++++++++++++++++++++++++++++++++++++"\n"
        wget buscon.rae.es/draeI/SrvltGUIBusUsual\?LEMA=$i\&origen=RAE\&TIPO_BUS=3 -q -U mozilla -O /tmp/rae$i
        html2text -o /tmp/rae$i.txt /tmp/rae$i
        cat /tmp/rae$i.txt|head -n 24
        rm /tmp/rae$i /tmp/rae$i.txt
done

y dale en Propiedades-->Permisos-->Permitir ejecutar el archivo como un programa.

3-En consola, sitúate en el directorio donde esté el script y teclea ./nombre_que_tenga palabra_que quieras buscar

por ejemplo ./rae hola

FUENTE: http://www.esdebian.org/articulos/36816/dos-scripts-utiles-fans-consolas-diccionarios-on-line

+1
0
-1
Imagen de nahuel_111
+1
0
-1

pero increiblemente funciona muy lento. no se que pasa, porque accediendo via navegador web es rapidisimo, pero desde el script se demora muchisimo.

por ahora me arreglo con un script que se me ocurrio y funciona bastante bien a los efectos:

#!/bin/bash
wmctrl -o 0,0; /opt/google/chrome/google-chrome http://www.wordreference.com/definicion/$1

wmctrl es un programita para cambiar de area de trabajo por comandos, luego la ruta al binario del navegador que uso, luego la pagina a abrir con el valor de la palabra buscada

Un saludo y muchas gracias nuevamente.

+1
0
-1
Imagen de dayer
+1
0
-1

Pues yo no sé que le pasa a mi sistema que todo lo que tenga que ver con rae.es me tarda entre 20 y 30 segundos en cargar resolviendo el host. Ya sea la propia web de la RAE como la aplicación LemuRae como cualquier script de los que hay por la red. El resto de páginas de Internet me cargan bien.

______________________
.: No dejes para mañana monte que puedas subir hoy :.

+1
0
-1

______________________
.: No dejes para mañana monte que puedas subir hoy :.

Imagen de JoMaRA
+1
0
-1

Llevaba mucho tiempo buscando la solución a este mismo problema y gracias a este post he encontrado la solución, aunque realmente no se por qué fallaba.
Debes descomentar la línea del diccionario que quieras usar.

#!/bin/bash
Diccionario="http://buscon.rae.es/draeI/SrvltGUIBusUsual?origen=RAE&LEMA=$1" # RAE
#Diccionario="http://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=$1"    # Panhispánico
lynx -useragent=mozilla -display_charset=UTF-8 -dump -nolist "$Diccionario" 2> /dev/null

Opciones:

 -useragent=mozilla      Esta es la clave, soluciona el problema, aunque genera una advertencia en la salida estandard de errores, por eso está redireccionada a /dev/null
 -display_charset=UTF-8  Permite la visualización de acentos y de la eñe.
 -dump                   Hace un volcado de la página evitando que se comporte como un navegador
 -nolist                 Elimina los enlaces que contiene la página
+1
0
-1
Imagen de matias.g
+1
0
-1

Este usa curl y html2text (sudo aptitude install curl html2text).

#!/bin/sh
curl -s "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1&origen=RAE" | html2text | head -n-2

La última parte, "| head -n-2" es opcional, solo quita la línea del copyright. Algún cambio hubo en los últimos meses, yo tenía un script que funcionaba y dejó de hacerlo. Creo que le agregaron frames a la página del DRAE y eso confunde a algunos programas de consola.

+1
0
-1
Imagen de nahuel_111
+1
0
-1

Le hice unos retoques, quedo así:

#!/bin/bash
curl -s "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1&origen=RAE" | html2text | head -n-2 | sed -e 's/\[Ver_artículo_enmendado\]/*\ /g' | more

Con 'sed' le quito esa frase que no se que significará y que aparece al comienzo, y luego le agrego un 'more' para ir avanzando por pantallas.

Gracias. Saludos.

Edito: Y nuevamente volvió a funcionar lento. Si alguien tiene otro...

+1
0
-1
Imagen de karpoke
+1
0
-1

El post es antiguo, pero dado que no había quedado solucionado y que aparece en las primeras búsquedas sobre el tema, dejaré aquí una solución que a mi me ha funcionado.

No parece que sea un problema de UserAgent, porque tanto si utilizamos lynx como si utilizamos curl podemos modificarlo (y usar, por ejemplo, el de Firefox o el de Internet Explorer) y la página sigue tardando en responder.

El problema parece estar en el tiempo que tarda en resolverse el dominio. Usando nslookup podemos ver que tras el dominio buscon.rae.es hay un balanceador:

$ nslookup buscon.rae.es
Server:		208.67.222.222
Address:	208.67.222.222#53

Non-authoritative answer:
buscon.rae.es	canonical name = buscon.balanceo.rae.es.
Name:	buscon.balanceo.rae.es
Address: 85.62.96.169

Podría ser que la primera vez que se hace una consulta en Firefox también tarde, y que las siguientes consultas sean instantáneas porque se guarde la IP, y sin embargo con curl estemos resolviendo la IP cada vez, pero tampoco podría asegurarlo dado no he hecho muchas más pruebas y lo siguiente me ha funcionado.

Si utilizamos la IP en lugar del dominio,obtenemos una repuesta inmediata. Probad lo siguiente, si acaso con la IP que os devuelva nslookup:

$ curl -s "http://85.62.96.169/draeI/SrvltGUIBusUsual?LEMA=cederrón&origen=RAE&TIPO_BUS=3"

El problema es que esta IP va cambiando, pero podemos utilizar nslookup en el script, cuyo resultado es instantáneo, y filtrar el resultado de curl tal como se ha comentado en la respuesta anterior:

#!/bin/bash - 

set -o nounset                              # Treat unset variables as an error

WORD="$1"
if [ -z "$WORD" ]; then
	echo "Usage: ${0##*/} word"
	exit 1
fi

CURL=/usr/bin/curl
HTML2TEXT=/usr/bin/html2text
NSLOOKUP=/usr/bin/nslookup

for p in $CURL $HTML2TEXT $NSLOOKUP; do
	if [ ! -x $p ]; then
		echo "[+] $p not found. You must install it first."
		exit 1
	fi
done

DOMAIN=buscon.rae.es
IP=$($NSLOOKUP $DOMAIN | tail -2 | head -1 | awk '{print $2}')
URL="http://$IP/draeI/SrvltGUIBusUsual?LEMA=$WORD&origen=RAE&TIPO_BUS=3"

RESET_TEXT='\e[0m'         # reset
HIGHLIGHT_TEXT='\e[0;31m'  # red

echo -e "[+] ${HIGHLIGHT_TEXT}${WORD}${RESET_TEXT} $URL\n"
curl -s "$URL" | html2text | head -n-2 | sed -e 's/\[Ver_artículo_enmendado\]/*\ /g' 

Por último, un ejemplo de uso, suponiendo que el script se llama rae.sh, tiene permisos de ejecución y se encuentra en el directorio actual:

$ ./rae.sh cederrón
[+] cederrón http://85.62.96.169/draeI/SrvltGUIBusUsual?LEMA=cederrón&origen=RAE&TIPO_BUS=3

cederrón.
(De CD-ROM, y este sigla del ingl. CompactDiscRead-OnlyMemory).
1. m.Inform. CD-ROM.

+1
0
-1
Imagen de nahuel_111
+1
0
-1

vuelvo a ser feliz

+1
0
-1