googler
é uma ferramenta poderosa para o Google (web, notícias, vídeos e pesquisa de sites) a partir da linha de comando. Mostra o título, URL e resumo de cada resultado, que pode ser aberto diretamente em um navegador a partir do terminal. Os resultados são obtidos em páginas (com navegação de página). Suporta pesquisas sequenciais em uma única instância googler
.
googler
foi inicialmente escrito para atender servidores headless sem X. Você pode integrá-lo a um navegador baseado em texto. No entanto, tornou-se um utilitário muito prático e flexível que oferece muito mais. Por exemplo, busque qualquer número de resultados ou comece em qualquer lugar, limite a pesquisa por qualquer duração, defina aliases para pesquisar no Google qualquer número de sites, troque de domínio facilmente... tudo isso em uma interface muito limpa, sem anúncios ou URLs perdidos. Os scripts de conclusão do shell garantem que você não precise se lembrar de nenhuma opção.
googler
não é afiliado ao Google de forma alguma.
Aqui estão alguns exemplos de uso:
Google, olá mundo :
$ googler hello world
Obtenha 15 resultados atualizados nos últimos 14 meses , a partir do 3º resultado para as palavras-chave livro da selva no site imdb.com:
$ googler -n 15 -s 3 -t m14 -w imdb.com jungle book
Ou, em vez dos últimos 14 meses, procure resultados especificamente entre 4 de abril de 2016 e 31 de dezembro de 2016:
$ googler -n 15 -s 3 --from 04/04/2016 --to 12/31/2016 -w imdb.com jungle book
Leia notícias recentes sobre gadgets:
$ googler -N gadgets
Obtenha resultados no críquete IPL do servidor Google Índia em inglês :
$ googler -c in -l en IPL cricket
Pesquise vídeos no PyCon 2020:
$ googler -V PyCon 2020
Pesquisar texto citado :
$ googler it's a "beautiful world" in spring
Procure um tipo de arquivo específico :
$ googler instrumental filetype:mp3
Desative a correção ortográfica automática , por exemplo, busque resultados para googler
em vez de google
:
$ googler -x googler
Estou com sorte, pesquisa:
$ googler -j leather jackets
Pesquisa específica do site :
$ googler -w amazon.com -w ebay.com digital camera
A pesquisa específica do site continua em omniprompt.
Os argumentos posicionais são unidos (com delimitação de espaços em branco) para formar a consulta final, para que você possa ser criativo com seus aliases. Por exemplo, sempre exclua seoarticlefactory.com dos resultados da pesquisa:
$ alias googler='googler " -site:seoarticlefactory.com"'
$ googler '<hugely popular keyword filled with SEO garbage>'
Alias para encontrar definições de palavras :
alias define='googler -n 2 define'
Procure n
, p
, o
, O
, q
, g keywords
ou um índice de resultado no omniprompt : como o omniprompt reconhece essas chaves ou cadeias de índice como comandos, você precisa prefixá-las com g
, por exemplo,
g n
g g keywords
g 1
Redirecionamento de entrada e saída:
$ googler -C hello world < input > output
Observe que -C
é necessário para evitar a impressão de caracteres de controle (para saída colorida).
Saída do tubo :
$ googler -C hello world | tee output
Use um esquema de cores personalizado , por exemplo, um esquema de cores quentes projetado para Solarized Dark (captura de tela):
$ googler --colors bjdxxy google
$ GOOGLER_COLORS=bjdxxy googler google
Tráfego de túnel por meio de um proxy HTTPS , por exemplo, uma instância Privoxy local escutando na porta 8118:
$ googler --proxy localhost:8118 google
Por padrão, a variável de ambiente https_proxy
é usada, se definida.
Cite várias palavras-chave de pesquisa para preenchimento automático (usando script de conclusão):
$ googler 'hello w<TAB>
Mais ajuda :
$ googler -h
$ man googler
Mais coisas divertidas que você pode experimentar com googler
:
filetype:mime
, site:somesite.com
) googler
requer Python 3.6 ou posterior. Somente a versão de patch mais recente de cada versão secundária é suportada.
Para copiar o URL para a área de transferência no omniprompt, googler
procura xsel
ou xclip
ou termux-clipboard-set
(na mesma ordem) no Linux, pbcopy
(instalado por padrão) no macOS e clip
(instalado por padrão) no Windows. Ele também suporta buffers de copiar e colar GNU Screen e tmux na ausência do X11.
Instale googler
do seu gerenciador de pacotes. Se a versão disponível estiver desatualizada, tente um método de instalação alternativo.
● Snap Store ( snap install googler
)
googler
v2.7 e posterior vem com um mecanismo de autoatualização local que você pode querer desativar. Para fazer isso, execute
$ make disable-self-upgrade
antes da instalação.
Pacotes para Arch Linux, CentOS, Debian, Fedora, openSUSE e Ubuntu estão disponíveis com a versão estável mais recente.
Se você tiver o git instalado, clone este repositório. Caso contrário, baixe a versão estável mais recente ou a versão de desenvolvimento.
Para instalar no local padrão ( /usr/local
):
$ sudo make install
Para remover googler
e documentos associados, execute
$ sudo make uninstall
PREFIX
é suportado, caso você queira instalar em um local diferente.
googler
é um executável independente (e pode ser executado até mesmo em ambientes como o Termux). Do diretório que contém:
$ ./googler
googler
é um script independente, então você pode baixar apenas um único arquivo, se desejar.
Para instalar a versão estável mais recente, execute
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v4.3.2/googler && sudo chmod +x /usr/local/bin/googler
Você poderia então permitir que o Googler se atualizasse executando
$ sudo googler -u
Da mesma forma, se você deseja instalar a partir do git master ( arriscado ), execute
$ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/master/googler && sudo chmod +x /usr/local/bin/googler
e atualize executando
$ sudo googler -u --include-git
A palavra-chave de pesquisa e os scripts de preenchimento de opções para Bash, Fish e Zsh podem ser encontrados nos respectivos subdiretórios de auto-completion/
. Consulte o manual do seu shell para obter instruções de instalação.
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
não tem nenhum! Isso mantém a velocidade do utilitário e evita diferenças específicas do sistema operacional. Os usuários podem aproveitar as vantagens dos arquivos de configuração usando aliases (com exceção do esquema de cores, que pode ser personalizado adicionalmente por meio de uma variável de ambiente; consulte Cores). Não há necessidade de memorizar opções.
Por exemplo, o seguinte alias para bash/zsh/ksh/etc.
alias g='googler -n 7 -c ru -l ru'
busca 7 resultados do servidor Google Rússia, com preferência para resultados em russo.
O alias serve para ambos os propósitos de uso de arquivos de configuração:
g
, ele expande para as configurações preferidas.argparse
do Python funciona, googler
é escrito de forma que as configurações no alias sejam completamente substituídas por quaisquer opções passadas do cli. Portanto, quando o mesmo usuário executa g -l de -c de -n 12 hello world
, 12 resultados são retornados do servidor Google Germany, com preferência para resultados em alemão. googler @t
é um complemento conveniente para o Google Site Search com palavras-chave exclusivas. Embora googler
tenha uma opção integrada para pesquisar um site, simplificamos ainda mais com aliases. O arquivo googler_at contém uma lista de aliases de pesquisa de sites. Para obtê-lo, execute:
$ source googler_at
ou,
$ . googler_at
Com googler @t
, veja como você pesquisa hexspeak
na Wikipedia:
$ @w hexspeak
Oh sim! Você também pode combinar outras opções googler
! Para facilitar a vida, você também pode configurar seu shell para gerar o arquivo quando ele for iniciado.
Todos os aliases começam com o símbolo @
(daí o nome googler @t
) e há uma chance mínima de entrarem em conflito com qualquer comando do shell. Sinta-se à vontade para adicionar seus próprios aliases ao arquivo e contribuir com os que forem interessantes.
googler
funciona imediatamente com vários navegadores baseados em texto se a variável de ambiente BROWSER
estiver definida. Por exemplo,
$ export BROWSER=w3m
ou para uso único,
$ BROWSER=w3m googler query
Devido a certos navegadores gráficos enviarem mensagens para o console, googler
suprime a saída do navegador por padrão, a menos que BROWSER
esteja definido como um dos navegadores baseados em texto conhecidos: atualmente elinks
, links
, lynx
, w3m
ou www-browser
. Se você usar um navegador baseado em texto diferente, precisará ativar explicitamente a saída do navegador com a opção --show-browser-logs
. Se você acredita que seu navegador é popular o suficiente, envie um problema ou solicitação de pull e consideraremos colocá-lo na lista de permissões. Consulte a página de manual para obter mais detalhes sobre --show-browser-logs
.
Se você precisar usar um navegador GUI com BROWSER
definido, use a chave omniprompt O
. googler
tentará ignorar navegadores baseados em texto e invocar um navegador GUI. Os logs do navegador são sempre suprimidos com O
.
googler
permite que você personalize o esquema de cores por meio de uma sequência de seis letras, que lembra BSD LSCOLORS
. As seis letras representam as cores
respectivamente. A sequência de seis letras é passada como argumento para a opção --colors
ou como valor da variável de ambiente GOOGLER_COLORS
.
Oferecemos as seguintes cores/estilos:
Carta | Cor/Estilo |
---|---|
um | preto |
b | vermelho |
c | verde |
d | amarelo |
e | azul |
f | magenta |
g | ciano |
h | branco |
eu | preto brilhante |
j | vermelho brilhante |
k | verde brilhante |
eu | amarelo brilhante |
eu | azul brilhante |
n | magenta brilhante |
ó | ciano brilhante |
p | branco brilhante |
AH | versão em negrito da cor das letras minúsculas |
PI | versão em negrito da cor brilhante em letras minúsculas |
x | normal |
X | audacioso |
sim | vídeo reverso |
S | vídeo reverso em negrito |
A string de cores padrão é GKlgxy
, que significa
Observe que
x1b[90m
– x1b[97m
) podem não estar disponíveis em todos os emuladores de terminal com capacidade de cores;Consulte o manual do seu emulador de terminal, bem como o artigo da Wikipedia sobre sequências de escape ANSI.
Para mostrar os nomes de domínio nos resultados da pesquisa em vez do URL expandido (e usar menos espaço), defina a variável de ambiente DISABLE_URL_EXPANSION
.
No WSL, os navegadores GUI do lado do Windows não podem ser detectados por padrão. Você precisa definir explicitamente a variável de ambiente BROWSER
para o caminho de um executável do Windows. Por exemplo, você pode colocar o seguinte no rc do seu shell:
$ export BROWSER='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
Em alguns casos, googler
pode mostrar menos resultados do que o esperado, por exemplo, se você buscar um único resultado ( -n 1
), ele pode não mostrar nenhum resultado. A razão é que o Google mostra alguns resultados de serviços do Google (por exemplo, Youtube), localizações de mapas, etc., dependendo dos seus dados geográficos, que googler
tenta omitir. Em alguns casos, o Google (o serviço web) não mostra exatamente 10 resultados (padrão) em uma pesquisa. Optamos por omitir esses resultados tanto quanto possível. Embora isso possa ser corrigido, seria necessário mais processamento (e mais tempo). Você pode simplesmente navegar para frente para buscar o próximo conjunto de resultados.
Por padrão, googler
aplica algumas otimizações de TCP e força o TLS 1.2 (no Python 3.4 e superior). Se você estiver enfrentando problemas de conexão, tente desabilitar ambos usando a opção --notweak
.
O serviço Google Notícias não está disponível se o idioma for dk
(Dinamarca), fi
(Finlândia) ou is
(Islândia). Use -l en
. Consulte #187 para obter mais informações.
Alguns usuários relataram problemas com um omniprompt colorido (consulte o problema nº 203) com o iTerm2 no macOS. Para forçar um omniprompt simples:
export DISABLE_PROMPT_COLOR=1
Inicialmente levantei uma solicitação pull, mas percebi que a última alteração foi feita 7 anos antes. Além disso, não há nenhuma atividade no GitHub do autor original Henri Hakkinen no ano passado. Criei este repositório independente para o projeto com o nome googler
. Mantive as informações originais de direitos autorais (embora googler
seja organicamente diferente agora).
O Google fornece uma API de pesquisa que retorna os resultados no formato JSON. No entanto, de acordo com meu entendimento dos documentos oficiais, a API emite as consultas em uma instância existente de um mecanismo de pesquisa personalizado e é limitada a 100 consultas de pesquisa por dia gratuitamente. Além disso, tenho reservas em pagar caso eles mudem de plano ou restrinjam a API de outras formas. Portanto, evitei me associar aos planos e políticas do Google ou expor minha chave e identificador de API de pesquisa personalizada pessoal rastreável ao público. Mantive o modo de fazer isso no navegador, buscando html, que é uma especificação aberta e gratuita.
Você pode encontrar um script rofi para googler
aqui. Escrito por um usuário anônimo, não testado e não o mantemos.
O repositório de plug-ins python do Albert Launcher (awesome-albert-plugins) inclui plug-ins de pesquisa habilitados para sugestões para uma variedade de sites que usam o googler. Consulte este último para demonstrações e instruções de uso.
Solicitações pull são bem-vindas. Visite #209 para obter uma lista de TODOs.
Agradecimentos especiais a jeremija e Narrat por suas contribuições.
Direitos autorais do logotipo © 2017 Zhiming Wang.
Você pode redistribuí-lo livremente junto com o código ou usá-lo ao descrever ou vincular a este projeto. Você NÃO deve criar versões modificadas dele, torná-lo o logotipo ou ícone do seu projeto (exceto bifurcações pessoais e/ou bifurcações com o objetivo de upstreaming) ou usá-lo de outra forma sem permissão por escrito.