googler
— это мощный инструмент для Google (поиск в Интернете, новостях, видео и сайтах) из командной строки. Он показывает заголовок, URL-адрес и аннотацию для каждого результата, который можно открыть непосредственно в браузере с терминала. Результаты извлекаются по страницам (с навигацией по страницам). Поддерживает последовательный поиск в одном экземпляре googler
.
googler
изначально был написан для обслуживания автономных серверов без X. Вы можете интегрировать его с текстовым браузером. Однако она превратилась в очень удобную и гибкую утилиту, которая дает гораздо больше. Например, можно получить любое количество результатов или начать где угодно, ограничить поиск любой продолжительностью, определить псевдонимы для поиска в Google на любом количестве веб-сайтов, легко переключать домены... все это в очень чистом интерфейсе без рекламы или случайных URL-адресов. Сценарии завершения оболочки гарантируют, что вам не нужно запоминать какие-либо параметры.
googler
никоим образом не связан с Google.
Вот несколько примеров использования:
Гугл, привет, мир :
$ googler hello world
Получите 15 результатов, обновленных за последние 14 месяцев , начиная с 3 -го результата по ключевому слову «Книга джунглей» на сайте imdb.com:
$ googler -n 15 -s 3 -t m14 -w imdb.com jungle book
Или вместо последних 14 месяцев ищите результаты конкретно за период с 4 апреля 2016 г. по 31 декабря 2016 г.:
$ googler -n 15 -s 3 --from 04/04/2016 --to 12/31/2016 -w imdb.com jungle book
Читайте последние новости о гаджетах:
$ googler -N gadgets
Получите результаты по крикету IPL с сервера Google India на английском языке :
$ googler -c in -l en IPL cricket
Поиск видео на PyCon 2020:
$ googler -V PyCon 2020
Поиск по цитируемому тексту :
$ googler it's a "beautiful world" in spring
Найдите определенный тип файла :
$ googler instrumental filetype:mp3
Отключите автоматическое исправление орфографии , например, получайте результаты для googler
вместо google
:
$ googler -x googler
Я чувствую, что мне повезло, ищите:
$ googler -j leather jackets
Поиск по сайту :
$ googler -w amazon.com -w ebay.com digital camera
Поиск по конкретному сайту продолжается мгновенно.
Позиционные аргументы объединяются (с разделителями-пробелами) для формирования окончательного запроса, поэтому вы можете проявлять творческий подход к своим псевдонимам. Например, всегда исключайте seoarticlefactory.com из результатов поиска:
$ alias googler='googler " -site:seoarticlefactory.com"'
$ googler '<hugely popular keyword filled with SEO garbage>'
Псевдоним для поиска определений слов :
alias define='googler -n 2 define'
Найдите ключевые слова n
, p
, o
, O
, q
, g keywords
или индекс результата в омниподсказке : поскольку омниподсказка распознает эти ключи или индексные строки как команды, вам необходимо поставить перед ними префикс g
, например:
g n
g g keywords
g 1
Перенаправление ввода и вывода:
$ googler -C hello world < input > output
Обратите внимание, что -C
требуется, чтобы избежать печати управляющих символов (для цветного вывода).
Выход трубы :
$ googler -C hello world | tee output
Используйте собственную цветовую схему , например теплую цветовую схему, предназначенную для Solarized Dark (снимок экрана):
$ googler --colors bjdxxy google
$ GOOGLER_COLORS=bjdxxy googler google
Туннельный трафик через HTTPS-прокси , например, локальный экземпляр Privoxy, прослушивающий порт 8118:
$ googler --proxy localhost:8118 google
По умолчанию используется переменная среды https_proxy
, если она определена.
Цитируйте несколько ключевых слов поиска для автозаполнения (с использованием сценария завершения):
$ googler 'hello w<TAB>
Дополнительная помощь :
$ googler -h
$ man googler
Еще больше интересных вещей, которые вы можете попробовать с помощью googler
:
filetype:mime
, site:somesite.com
). googler
требует Python 3.6 или более поздней версии. Поддерживаются только последние версии исправлений каждой дополнительной версии.
Чтобы скопировать URL-адрес в буфер обмена при помощи всплывающей подсказки, googler
ищет xsel
, xclip
или termux-clipboard-set
(в том же порядке) в Linux, pbcopy
(установлен по умолчанию) в macOS и clip
(установлен по умолчанию) в Windows. Он также поддерживает GNU Screen и буферы копирования-вставки tmux при отсутствии X11.
Установите googler
из менеджера пакетов. Если доступная версия устарела, попробуйте альтернативный метод установки.
● Snap Store ( snap install googler
)
googler
версии 2.7 и более поздних версий поставляется с встроенным механизмом самостоятельного обновления, который вы можете отключить. Для этого запустите
$ make disable-self-upgrade
перед установкой.
Пакеты для Arch Linux, CentOS, Debian, Fedora, openSUSE и Ubuntu доступны в последней стабильной версии.
Если у вас установлен git, клонируйте этот репозиторий. В противном случае загрузите последнюю стабильную версию или версию для разработки.
Для установки в папку по умолчанию ( /usr/local
):
$ sudo make install
Чтобы удалить googler
и связанные с ним документы, запустите
$ sudo make uninstall
PREFIX
поддерживается на случай, если вы захотите установить его в другое место.
googler
— это отдельный исполняемый файл (и может работать даже в таких средах, как Termux). Из содержащего каталога:
$ ./googler
googler
— это отдельный автономный скрипт, поэтому при желании вы можете загрузить только один файл.
Чтобы установить последнюю стабильную версию, запустите
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v4.3.2/googler && sudo chmod +x /usr/local/bin/googler
Затем вы можете позволить Googler обновиться, запустив
$ sudo googler -u
Аналогично, если вы хотите установить из git master ( рискованно ), запустите
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/master/googler && sudo chmod +x /usr/local/bin/googler
и обновите, запустив
$ sudo googler -u --include-git
Сценарии завершения поиска по ключевым словам и опциям для Bash, Fish и Zsh можно найти в соответствующих подкаталогах auto-completion/
. Инструкции по установке см. в руководстве к вашей оболочке.
usage: googler [-h] [-s N] [-n N] [-N] [-V] [-c TLD] [-l LANG] [-g CC] [-x]
[--colorize [{auto,always,never}]] [-C] [--colors COLORS] [-j] [-t dN] [--from FROM]
[--to TO] [-w SITE] [-e SITE] [--unfilter] [-p PROXY] [--notweak] [--json]
[--url-handler UTIL] [--show-browser-logs] [--np] [-4] [-6] [-u] [--include-git] [-v] [-d]
[KEYWORD [KEYWORD ...]]
Google from the command-line.
positional arguments:
KEYWORD search keywords
optional arguments:
-h, --help show this help message and exit
-s N, --start N start at the Nth result
-n N, --count N show N results (default 10)
-N, --news show results from news section
-V, --videos show results from videos section
-c TLD, --tld TLD country-specific search with top-level domain .TLD, e.g., 'in' for India
-l LANG, --lang LANG display in language LANG
-g CC, --geoloc CC country-specific geolocation search with country code CC, e.g. 'in' for India.
Country codes are the same as top-level domains
-x, --exact disable automatic spelling correction
--colorize [{auto,always,never}]
whether to colorize output; defaults to 'auto', which enables color when stdout
is a tty device; using --colorize without an argument is equivalent to
--colorize=always
-C, --nocolor equivalent to --colorize=never
--colors COLORS set output colors (see man page for details)
-j, --first, --lucky open the first result in web browser and exit
-t dN, --time dN time limit search [h5 (5 hrs), d5 (5 days), w5 (5 weeks), m5 (5 months), y5 (5
years)]
--from FROM starting date/month/year of date range; must use American date format with
slashes, e.g., 2/24/2020, 2/2020, 2020; can be used in conjunction with --to,
and overrides -t, --time
--to TO ending date/month/year of date range; see --from
-w SITE, --site SITE search a site using Google
-e SITE, --exclude SITE
exclude site from results
--unfilter do not omit similar results
-p PROXY, --proxy PROXY
tunnel traffic through an HTTP proxy; PROXY is of the form
[http://][user:password@]proxyhost[:port]
--notweak disable TCP optimizations and forced TLS 1.2
--json output in JSON format; implies --noprompt
--url-handler UTIL custom script or cli utility to open results
--show-browser-logs do not suppress browser output (stdout and stderr)
--np, --noprompt search and exit, do not prompt
-4, --ipv4 only connect over IPv4 (by default, IPv4 is preferred but IPv6 is used as a
fallback)
-6, --ipv6 only connect over IPv6
-u, --upgrade perform in-place self-upgrade
--include-git when used with --upgrade, get latest git master
-v, --version show program's version number and exit
-d, --debug enable debugging
omniprompt keys:
n, p fetch the next or previous set of search results
index open the result corresponding to index in browser
f jump to the first page
o [index|range|a ...] open space-separated result indices, numeric ranges
(sitelinks unsupported in ranges), or all, in browser
open the current search in browser, if no arguments
O [index|range|a ...] like key 'o', but try to open in a GUI browser
g keywords new Google search for 'keywords' with original options
should be used to search omniprompt keys and indices
c index copy url to clipboard
u toggle url expansion
q, ^D, double Enter exit googler
? show omniprompt help
* other inputs issue a new search with original options
googler
их нет! Это сделано для того, чтобы сохранить скорость работы утилиты и избежать различий, специфичных для ОС. Пользователи могут воспользоваться преимуществами файлов конфигурации, использующих псевдонимы (за исключением цветовой схемы, которую можно дополнительно настроить с помощью переменной среды; см. Цвета). Нет необходимости запоминать варианты.
Например, следующий псевдоним для bash/zsh/ksh/etc.
alias g='googler -n 7 -c ru -l ru'
получает 7 результатов с сервера Google Russia, отдавая предпочтение результатам на русском языке.
Псевдоним служит обеим целям использования файлов конфигурации:
g
, он расширяется до предпочтительных настроек.argparse
в Python, googler
написан так, что настройки в псевдониме полностью переопределяются любыми параметрами, передаваемыми из cli. Таким образом, когда тот же пользователь запускает g -l de -c de -n 12 hello world
, с сервера Google Germany возвращается 12 результатов, причем предпочтение отдается результатам на немецком языке. googler @t
— удобное дополнение к Google Site Search с уникальными ключевыми словами. Хотя googler
есть встроенная функция поиска по сайту, мы еще больше упростили ее, добавив псевдонимы. Файл googler_at содержит список псевдонимов поиска веб-сайтов. Чтобы получить его, запустите:
$ source googler_at
или,
$ . googler_at
С помощью googler @t
вы можете искать в Википедии слово hexspeak
:
$ @w hexspeak
О, да! Вы также можете комбинировать другие опции googler
! Чтобы облегчить жизнь, вы также можете настроить свою оболочку для получения файла при запуске.
Все псевдонимы начинаются с символа @
(отсюда и название googler @t
), и вероятность конфликта с какими-либо командами оболочки минимальна. Не стесняйтесь добавлять в файл свои собственные псевдонимы и возвращать интересные.
googler
автоматически работает с несколькими текстовыми браузерами, если установлена переменная среды BROWSER
. Например,
$ export BROWSER=w3m
или для одноразового использования,
$ BROWSER=w3m googler query
Из-за того, что некоторые графические браузеры выводят сообщения на консоль, googler
по умолчанию подавляет вывод браузера, если только BROWSER
не установлен на один из известных текстовых браузеров: в настоящее время elinks
, links
, lynx
, w3m
или www-browser
. Если вы используете другой текстовый браузер, вам необходимо явно включить вывод браузера с помощью опции --show-browser-logs
. Если вы считаете, что ваш браузер достаточно популярен, отправьте сообщение о проблеме или запрос на включение, и мы рассмотрим возможность внесения его в белый список. Дополнительную информацию о --show-browser-logs
см. на странице руководства.
Если вам нужно использовать браузер с графическим интерфейсом с установленным BROWSER
, используйте клавишу всепроникающей подсказки O
. googler
попытается игнорировать текстовые браузеры и вызвать браузер с графическим интерфейсом. Журналы браузера всегда подавляются с помощью O
.
googler
позволяет настраивать цветовую схему с помощью шестибуквенной строки, напоминающей BSD LSCOLORS
. Шесть букв обозначают цвета
соответственно. Шестибуквенная строка передается либо в качестве аргумента опции --colors
, либо как значение переменной среды GOOGLER_COLORS
.
Мы предлагаем следующие цвета/стили:
Письмо | Цвет/Стиль |
---|---|
а | черный |
б | красный |
с | зеленый |
д | желтый |
е | синий |
ж | пурпурный |
г | голубой |
час | белый |
я | ярко-черный |
дж | ярко-красный |
к | ярко-зеленый |
л | ярко-желтый |
м | ярко-синий |
н | ярко-пурпурный |
о | ярко-голубой |
п | ярко-белый |
АХ | жирный вариант цвета строчных букв |
ИП | жирный вариант строчной буквы яркого цвета |
х | нормальный |
Х | смелый |
й | обратное видео |
Да | смелое обратное видео |
Строка цветов по умолчанию — GKlgxy
, что означает
Обратите внимание, что
x1b[90m
– x1b[97m
) могут быть доступны не во всех эмуляторах терминала с поддержкой цвета;Пожалуйста, обратитесь к руководству вашего эмулятора терминала, а также к статье в Википедии об escape-последовательностях ANSI.
Чтобы отображать имена доменов в результатах поиска вместо расширенного URL-адреса (и использовать меньше места), установите переменную среды DISABLE_URL_EXPANSION
.
В WSL браузеры с графическим интерфейсом на стороне Windows по умолчанию не обнаруживаются. Вам необходимо явно указать для переменной среды BROWSER
путь к исполняемому файлу Windows. Например, вы можете поместить в rc вашей оболочки следующее:
$ export BROWSER='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
В некоторых случаях googler
может показать меньшее количество результатов, чем вы ожидаете, например, если вы получили один результат ( -n 1
), он может не показать никаких результатов. Причина в том, что Google показывает результаты некоторых сервисов Google (например, Youtube), местоположения на карте и т. д. в зависимости от ваших географических данных, которые googler
пытается пропустить. В некоторых случаях Google (веб-сервис) не показывает ровно 10 результатов (по умолчанию) при поиске. Мы решили опустить эти результаты, насколько это возможно. Хотя это можно исправить, потребуется дополнительная обработка (и больше времени). Вы можете просто перейти вперед, чтобы получить следующий набор результатов.
По умолчанию googler
применяет некоторые оптимизации TCP и принудительно использует TLS 1.2 (на Python 3.4 и выше). Если у вас возникли проблемы с подключением, попробуйте отключить оба варианта с помощью переключателя --notweak
.
Служба Новостей Google недоступна, если выбран язык dk
(Дания), fi
(Финляндия) или is
(Исландия). Используйте -l en
. Пожалуйста, обратитесь к № 187 для получения дополнительной информации.
Некоторые пользователи сообщали о проблемах с цветным всплывающим сообщением (см. проблему № 203) в iTerm2 на macOS. Чтобы вызвать простую всеподсказку:
export DISABLE_PROMPT_COLOR=1
Сначала я отправил запрос на включение, но увидел, что последнее изменение было сделано 7 лет назад. Кроме того, в прошлом году на GitHub не было активности оригинального автора Генри Хаккинена. Я создал этот независимый репозиторий для проекта под названием googler
. Я сохранил исходную информацию об авторских правах (хотя googler
теперь органически изменился).
Google предоставляет API поиска, который возвращает результаты в формате JSON. Однако, насколько я понимаю из официальной документации, API выдает запросы к существующему экземпляру пользовательской поисковой системы и ограничен 100 поисковыми запросами в день бесплатно. Кроме того, у меня есть оговорки по поводу оплаты, если они когда-нибудь изменят свой план или каким-либо образом ограничат API. Поэтому я воздерживался от связи с планами и политиками Google или от раскрытия моего отслеживаемого личного ключа API пользовательского поиска и идентификатора для общественности. Я сохранил способ сделать это в браузере, загрузив HTML, который является открытой и бесплатной спецификацией.
Вы можете найти скрипт rofi для googler
здесь. Написано анонимным пользователем, не проверено и не поддерживается.
Репозиторий плагинов Python для Albert Launcher (awesome-albert-plugins) включает плагины поиска с поддержкой предложений для различных веб-сайтов, использующих Googler. Обратитесь к последнему для ознакомления с демонстрациями и инструкциями по использованию.
Запросы на вытягивание приветствуются. Пожалуйста, посетите #209, чтобы просмотреть список TODO.
Особая благодарность Джеремии и Наррату за их вклад.
Авторские права на логотип © 2017 Чжимин Ван.
Вы можете свободно распространять его вместе с кодом или использовать при описании этого проекта или при ссылке на него. Вам НЕ следует создавать его модифицированные версии, делать его логотипом или значком вашего проекта (кроме личных форков и/или форков с целью распространения) или иным образом использовать его без письменного разрешения.