Encontré esta imagen en la web hoy. Siendo un programador perezoso, no quiero abrir Google y escribir un par de caracteres. Demasiado trabajo! Esta es una tarea tan importante que debería automatizarse.
Desafío
Todos saben que la primera imagen en un resultado de búsqueda de Google es siempre la mejor. Por lo tanto, debe presentarse al usuario.
Debe escribir un programa o función que tome una cadena como parámetro y muestre la primera imagen que encuentre en Google cuando busque ese nombre + las palabras glamour shot
detrás de él.
Consultas de búsqueda de Google
Para buscar imágenes en Google, la url debe contener el parámetro de consulta tbm=isch
y q=query
, con query
el nombre que desea buscar.
Una cadena de consulta válida para mi nombre Bas
seríawww.google.com/search?tbm=isch&q=Bas
Entrada
Su programa o función toma un solo parámetro de entrada, que es el nombre que desea buscar en google. Esta cadena constará de los personajes [a-z]
, [A-Z]
, [0-9]
y (espacio). Esta cadena puede estar separada por espacios, para buscar una cadena separada por espacios en Google, uno debe reemplazar los espacios con
+
. Por ejemplo, esta es una consulta válida:
www.google.com/search?tbm=isch&q=Bassdrop+Cumberwubwubwub+glamour+shot
Salida
La imagen puede dibujarse en la pantalla o guardarse en un archivo (en cualquier formato).
Si el primer resultado de búsqueda en google es un archivo gif, puede mostrar el gif o mostrar cualquier marco de ese gif.
Casos de prueba
Ejecute este fragmento para ver los resultados esperados.
Este es el código de golf , ¡el código más corto en bytes gana!
fuente
[a-z0-9]
, editó mi publicación. Las URL se verán como los ejemplos que proporcioné, no se necesita codificación, solo espacio para+
A-Z
que también puede aparecer, a juzgar por tu ejemplo.Respuestas:
PowerShell v4 +, 160 bytes
Toma la entrada
$a
como una cadena. Hace unInvoke-WebRequest
(iwr
) a la ubicación apropiada de Google, usando el bloque de secuencia de comandos de la cadena interna para-replace
espacios con+
la cadena de entrada. Tomamos el.links
de eso, donde.innerhtml
es-like
nuestra cadena de entrada. Eso produce los enlaces con la descripción en miniatura adecuada. Tome la primera[0]
uno de ellos, tomar su.innerhtml
y-split
en las citas. El cuarto[3]
elemento es el texto dentro de laimg src="
porción, por lo que hacemos otroiwr
sobre eso, especificando-outf
que$a.jpg
el archivo esté en la carpeta local. Dado que estas son solo las miniaturas generadas por Google, se garantiza que serán jpg.fuente
google.com
con elgoogle.nl
de -1 bytesExcel VBA + ,
465332bytesGolfizado:
Sub
Rutina completa que toma la entradan
(abreviatura de nombre) del tipo esperadoVariant/String
y genera el primer resultado de búsqueda de imágenes de Google para la consulta de ese nombre yglamour shot
en una ventana de Internet Explorer.-2 bytes para eliminar espacios en blanco en
If InStr(1, a.href, "imgres") Then
-2 bytes para cambiar
.navigate (a.href)
a.navigate a.href
-27 bytes para reducir el
for each a in ... if (...) then ... end if .. next
bucle ado until ... loop
-10 bytes para condensar
imgres
ares
yencrypted
ayp
-8 bytes para la eliminación de initalizers para
j
,k
y suponiendo módulo limpio-1 byte para cambiar
google.com
agoogle.nl
-3 bytes para reemplazar
Dim i as New ...
conSet i=New ...
-8 bytes para eliminar
SHDocVw.
la referencia de clase-12 bytes para eliminar el
with i
bloque-7 bytes para eliminar
i.quit
: esto causa una pérdida de memoria al dejar Internet Explorer abierto en segundo plano, por lo que se recomienda que se use la versión completa no protegida o que la tarea de Internet Explorer se finalice a través del administrador de tareas después del uso-6 bytes para pasar
i.navigate
a la subrutina auxiliarh
-13 bytes para pasar
Do Until ... Loop
a la subrutina auxiliar-2 bytes moviéndose
j=0
a helper y eliminando,j
,,0
(x2)-11 bytes para convertir a una función de ventana inmediata anónima
-8 bytes para reducir las llamadas de función auxiliar en el
for .. next
bucle-16 bytes para cambiar la salida del
Sheets(1)
objeto de imagen a mostrar a través delInternetExplorer
objetoSin Golf, 1304 Bytes
Gif de uso
fuente
Vimperador , 30 pulsaciones de teclas
Alternativamente, 27 pulsaciones de teclas si no necesita la imagen de mayor resolución:
Video: https://youtu.be/t8824UjlYt8
Afortunadamente, el motor de búsqueda estándar en Firefox es google, y Vimperator le permite escribir sugerencias de forma predeterminada. Esto es más largo de lo necesario para asegurarse de que siempre funcione independientemente de lo que busque.
Toma entrada a través del portapapeles.
Explicación:
Gracias a @TaylorScott por encontrar un caso límite.
fuente
Python 3.6,
247242232 quizás 224 bytesEste es un lindo intento de resolver este. Guardará el archivo como
p.png
en el directorio actual.Para ejecutarlo con facilidad desde la línea de comandos, simplemente coloque el contenido anterior en un archivo, como
glamour.py
y ejecutar:Actualización 1: Mejor versión con nueva url de google
Actualización 2:
Guardé algunos bytes:
f
indicador de interpolación de cadenas python 3.6 sin asignar elsys.argv
a una variableBeautifulSoup
llamadaEl último es controvertido, ya que da como resultado un mensaje de salida estándar que le indica al programador que especifique el analizador para la compatibilidad multiplataforma, por lo que podría considerarse una salida no deseada.
Aquí está la versión de 224 bytes:
Aquí está la versión de 232 bytes:
Pero la versión más corta podría usarse si std.out se redirige a
/dev/null
algo o algo así: Dfuente
www.google.nl/
o tal vez incluso engoogle.nl
lugar dehttps://www.google.com.br/
guardar algunos byteshttp://
para que funcione con las solicitudes. Pero el google brasileño me dio resultados más divertidos, así quen = 'something'; f'{n}_here'
vez den = 'something'; '{n}_here'.format(n = n)
on = 'something'; '{}_here'.format(n)
Raqueta, 284 byes
Captura de pantalla:
fuente