Нашел эту картинку сегодня в сети. Будучи ленивым программистом, я не хочу открывать Google и вводить пару символов. Слишком много работы! Это настолько важная задача, что она должна быть автоматизирована.
Вызов
Все знают, что первое изображение в результатах поиска Google всегда лучшее. Следовательно, это должно быть представлено пользователю.
Вы должны написать программу или функцию, которая принимает строку в качестве параметра и отображает первое изображение, которое она находит в Google, когда вы ищете это имя + слова glamour shot
за ним.
Поисковые запросы Google
Для поиска изображений на Google, URL - адрес должен содержать параметр запроса tbm=isch
и q=query
с query
быть имя , которое вы хотите найти.
Допустимая строка запроса для моего имени Bas
будетwww.google.com/search?tbm=isch&q=Bas
вход
Ваша программа или функция принимает один параметр ввода - имя, которое вы хотите найти в Google. Эта строка будет состоять из символов [a-z]
, [A-Z]
, [0-9]
и (пробел). Эта строка может быть разделена пробелами, чтобы найти в Google строку с разделенными пробелами, нужно заменить пробелы на
+
. Например, это правильный запрос:
www.google.com/search?tbm=isch&q=Bassdrop+Cumberwubwubwub+glamour+shot
Выход
Изображение можно либо вывести на экран, либо сохранить в файл (в любом формате).
Если первым результатом поиска в Google является файл GIF, вы можете либо показать GIF, либо показать любой кадр этого GIF.
Контрольные примеры
Запустите этот фрагмент, чтобы увидеть ожидаемые результаты
Это код-гольф , выигрывает самый короткий код в байтах!
источник
[a-z0-9]
, отредактировал мой пост. URL будут похожи на примеры, которые я предоставил, без кодирования, просто место для+
A-Z
тоже может появиться, судя по вашему примеру?Ответы:
PowerShell v4 +, 160 байт
Принимает ввод
$a
в виде строки. ДелаетInvoke-WebRequest
(iwr
) соответствующее местоположение Google, используя блок скрипта внутренней строки для-replace
пробелов+
во входной строке. Берем.links
о том, где.innerhtml
находится-like
наша строка ввода. Это дает ссылки с соответствующим описанием миниатюры. Возьмите первый[0]
из тех, возьмите его.innerhtml
и-split
он по цитатам. Четвертый[3]
элемент - это текст внутриimg src="
части, поэтому мы делаем еще одинiwr
, указывая, что-outf
файл должен находиться$a.jpg
в локальной папке. Так как это всего лишь сгенерированные Google эскизы, они гарантированно будут jpg.источник
google.com
сgoogle.nl
для -1 байтExcel VBA + ,
465332 байтаGolfed:
Полная
Sub
подпрограмма, которая принимает вводn
(сокращение от имени) ожидаемого типаVariant/String
и выводит первый результат поиска изображений Google для запроса этого имени иglamour shot
в окно Internet Explorer.-2 байта для удаления пробелов в
If InStr(1, a.href, "imgres") Then
-2 байта для перехода
.navigate (a.href)
на.navigate a.href
-27 байт для уменьшения
for each a in ... if (...) then ... end if .. next
цикла доdo until ... loop
-10 байтов для конденсации
imgres
вres
иencrypted
вyp
-8 байт для удаления initalizers для
j
,k
и предполагая , чистый модуль-1 байт для перехода
google.com
наgoogle.nl
-3 байта для замены
Dim i as New ...
наSet i=New ...
-8 байт для удаления
SHDocVw.
ссылки на класс-12 байт для удаления
with i
блока-7 байт для удаления
i.quit
- это вызывает некоторую утечку памяти, оставляя Internet Explorer открытым в фоновом режиме, поэтому рекомендуется использовать вместо него полную версию без использования golf или что задача Internet Explorer завершается через диспетчер задач после использования-6 байт для перехода
i.navigate
во вспомогательную подпрограммуh
-13 байт для перехода
Do Until ... Loop
в вспомогательную подпрограмму-2 байта путем перемещения
j=0
в помощник и удаления,j
,,0
(x2)-11 байт для преобразования в анонимную функцию непосредственного окна
-8 байт для сокращения вызовов вспомогательных функций в
for .. next
цикле-16 байт для изменения вывода
Sheets(1)
изображения с объекта на отображение черезInternetExplorer
объектUngolfed, 1304 байта
Использование GIF
источник
Вимператор , 30 нажатий клавиш
Или 27 нажатий клавиш, если вам не нужно изображение с самым высоким разрешением:
Видео: https://youtu.be/t8824UjlYt8
К счастью, стандартная поисковая система в Firefox - это Google, и Vimperator позволяет вводить подсказки по умолчанию. Это дольше, чем нужно, чтобы убедиться, что он всегда работает независимо от того, что вы ищете.
Принимает ввод через буфер обмена.
Объяснение:
Спасибо @TaylorScott за то, что нашли крайний случай.
источник
Python 3,6,
247,242,232, может быть, 224 байтаЭто милая попытка решить эту проблему. Это сохранит файл как
p.png
в текущем каталоге.Чтобы легко запустить его из командной строки, просто поместите вышеуказанное содержимое в файл, например,
glamour.py
и запустите:Обновление 1: лучшая версия с новым URL Google
Обновление 2:
Я сохранил несколько байтов:
f
флага интерполяции строки Python 3.6 без выделенияsys.argv
переменнойBeautifulSoup
вызоваПоследнее является спорным, поскольку приводит к сообщению std.output, в котором программисту задается синтаксический анализатор для кроссплатформенной совместимости, поэтому его можно считать нежелательным выводом.
Вот 224-байтовая версия:
Вот 232-байтовая версия:
Но более короткую версию можно использовать, если std.out перенаправлен на
/dev/null
что-то еще: Dисточник
www.google.nl/
или, возможно, дажеgoogle.nl
вместо того,https://www.google.com.br/
чтобы сохранить некоторые байтыhttp://
его для работы с запросами. Но бразильский гугл дал мне более смешные результаты, поэтому яn = 'something'; f'{n}_here'
вместоn = 'something'; '{n}_here'.format(n = n)
илиn = 'something'; '{}_here'.format(n)
Ракетка, 284 бай
Снимок экрана:
источник