googler
是一个通过命令行进行 Google(网络、新闻、视频和网站搜索)的强大工具。它显示每个结果的标题、URL 和摘要,可以直接从终端在浏览器中打开。结果在页面中获取(使用页面导航)。支持在单个googler
实例中进行顺序搜索。
googler
最初是为了迎合没有 X 的无头服务器而编写的。您可以将其与基于文本的浏览器集成。然而,它已经发展成为一个非常方便和灵活的实用程序,可以提供更多功能。例如,获取任意数量的结果或从任何地方开始,限制搜索任何持续时间,定义别名以谷歌搜索任意数量的网站,轻松切换域......所有这一切都在一个非常干净的界面中,没有广告或流浪网址。 shell 完成脚本确保您不需要记住任何选项。
googler
不以任何方式隶属于 Google。
以下是一些使用示例:
谷歌你好世界:
$ googler hello world
获取过去14 个月内更新的15 个结果,从网站imdb.com 中关键字“jungle book”的第 3 个结果开始:
$ googler -n 15 -s 3 -t m14 -w imdb.com jungle book
或者不是过去 14 个月,而是专门查找 2016 年 4 月 4 日至 2016 年 12 月 31 日之间的结果:
$ googler -n 15 -s 3 --from 04/04/2016 --to 12/31/2016 -w imdb.com jungle book
阅读有关小工具的最新新闻:
$ googler -N gadgets
从Google India服务器获取 IPL 板球比赛的英文结果:
$ 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'
在omniprompt中查找n
, p
, o
, O
, q
, g keywords
或结果索引:由于omniprompt将这些键或索引字符串识别为命令,因此您需要在它们前面加上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 代理的隧道流量,例如侦听端口 8118 的本地 Privoxy 实例:
$ 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 或更高版本。仅支持每个小版本的最新补丁版本。
要在omniprompt上将url复制到剪贴板, googler
会在Linux上查找xsel
或xclip
或termux-clipboard-set
(按相同顺序),在macOS上查找pbcopy
(默认安装),在Windows上clip
(默认安装)。在没有 X11 的情况下,它还支持 GNU Screen 和 tmux 复制粘贴缓冲区。
从包管理器安装googler
。如果可用版本已过时,请尝试其他安装方法。
● Snap Store( snap install googler
)
googler
v2.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/
各自的子目录中找到。请参阅您的 shell 手册以获取安装说明。
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'
从 Google Russia 服务器获取 7 个结果,优先考虑俄语结果。
别名具有使用配置文件的两个目的:
g
时,它会扩展为首选设置。argparse
工作方式, googler
编写方式使得 alias 中的设置完全被从 cli 传递的任何选项覆盖。因此,当同一用户运行g -l de -c de -n 12 hello world
时,Google 德国服务器会返回 12 个结果,并且优先考虑德语结果。 googler @t
是一个方便的 Google Site Search 附加组件,具有独特的关键字。虽然googler
有一个集成的选项来搜索网站,但我们使用别名进一步简化了它。文件 googler_at 包含网站搜索别名的列表。要获取它,请运行:
$ source googler_at
或者,
$ . googler_at
使用googler @t
,您可以通过以下方式在 Wikipedia 中搜索hexspeak
:
$ @w hexspeak
哦是的!您也可以结合其他googler
选项!为了让生活更轻松,您还可以将 shell 配置为在启动时获取该文件。
所有别名均以@
符号开头(因此名称googler @t
),并且它们与任何 shell 命令冲突的可能性极小。请随意将您自己的别名添加到文件中并贡献有趣的别名。
如果设置了BROWSER
环境变量, googler
可以开箱即用地使用多种基于文本的浏览器。例如,
$ export BROWSER=w3m
或一次性使用,
$ BROWSER=w3m googler query
由于某些图形浏览器向控制台发送消息, googler
默认情况下会抑制浏览器输出,除非将BROWSER
设置为已知的基于文本的浏览器之一:当前为elinks
、 links
、 lynx
、 w3m
或www-browser
。如果您使用不同的基于文本的浏览器,则需要使用--show-browser-logs
选项显式启用浏览器输出。如果您认为您的浏览器足够流行,请提交问题或拉取请求,我们将考虑将其列入白名单。有关--show-browser-logs
的更多详细信息,请参阅手册页。
如果您需要使用设置了BROWSER
GUI 浏览器,请使用全提示键O
。 googler
将尝试忽略基于文本的浏览器并调用 GUI 浏览器。浏览器日志始终用O
抑制。
googler
允许您通过六个字母的字符串自定义配色方案,让人想起 BSD LSCOLORS
。这六个字母分别代表颜色
分别。六个字母的字符串作为--colors
选项的参数传递,或者作为环境变量GOOGLER_COLORS
的值传递。
我们提供以下颜色/款式:
信 | 颜色/款式 |
---|---|
一个 | 黑色的 |
乙 | 红色的 |
c | 绿色的 |
d | 黄色的 |
e | 蓝色的 |
f | 品红 |
克 | 青色 |
小时 | 白色的 |
我 | 亮黑色 |
j | 鲜红色 |
k | 亮绿色 |
我 | 亮黄色 |
米 | 亮蓝色 |
n | 亮洋红色 |
哦 | 亮青色 |
p | 亮白色 |
啊 | 小写字母颜色的粗体版本 |
知识产权 | 小写字母的粗体版本,颜色鲜艳 |
x | 普通的 |
X | 大胆的 |
y | 反向视频 |
是 | 粗体反转视频 |
默认颜色字符串是GKlgxy
,它代表
注意
x1b[90m
– x1b[97m
)可能不适用于所有支持颜色的终端模拟器;请参阅终端仿真器的手册以及有关 ANSI 转义序列的 Wikipedia 文章。
要在搜索结果中显示域名而不是扩展的 URL(并使用更少的空间),请设置环境变量DISABLE_URL_EXPANSION
。
在 WSL 上,默认情况下无法检测到 Windows 端的 GUI 浏览器。您需要将BROWSER
环境变量显式设置为 Windows 可执行文件的路径。例如,您可以将以下内容放入 shell 的 rc 中:
$ export BROWSER='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
在某些情况下, googler
显示的结果数量可能比您预期的要少,例如,如果您获取单个结果 ( -n 1
),它可能不会显示任何结果。原因是谷歌根据您的地理数据显示一些谷歌服务(例如Youtube)结果、地图位置等,而googler
试图忽略这些数据。在某些情况下,Google(网络服务)不会在搜索中准确显示 10 个结果(默认)。我们选择尽可能忽略这些结果。虽然这个问题可以解决,但需要更多的处理(和更多的时间)。您只需向前导航即可获取下一组结果。
默认情况下, googler
应用一些 TCP 优化并强制使用 TLS 1.2(在 Python 3.4 及更高版本上)。如果您遇到连接问题,请尝试使用--notweak
开关禁用两者。
如果语言为dk
(丹麦)、 fi
(芬兰)或is
(冰岛),则 Google 新闻服务不可用。使用-l en
。请参阅#187 了解更多信息。
一些用户报告了 macOS 上 iTerm2 的彩色全提示符问题(请参阅问题 #203)。强制执行简单的全向提示:
export DISABLE_PROMPT_COLOR=1
最初我提出了一个 Pull 请求,但我可以看到最后一次更改是在 7 年前进行的。此外,原作者 Henri Hakkinen 去年没有任何 GitHub 活动。我为该项目创建了这个名为googler
独立存储库。我保留了原始版权信息(尽管googler
现在已经有机地不同了)。
Google 提供了一个搜索 API,它以 JSON 格式返回结果。然而,根据我对官方文档的理解,该 API 会针对自定义搜索引擎的现有实例发出查询,并且每天免费的搜索查询次数限制为 100 次。此外,如果他们改变计划或以其他方式限制 API,我对付款持保留态度。因此,我没有与 Google 计划和政策结合,也没有向公众公开我的可追踪个人自定义搜索 API 密钥和标识符。我保留了浏览器的方式,即获取 html,这是一个开放且免费的规范。
您可以在这里找到googler
的 rofi 脚本。由匿名用户编写,未经测试,我们不维护它。
Albert Launcher python 插件存储库 (awesome-albert-plugins) 包括使用 googler 的各种网站的支持建议的搜索插件。请参阅后者的演示和使用说明。
欢迎请求请求。请访问 #209 获取 TODO 列表。
特别感谢 jeremija 和 Narrat 的贡献。
徽标版权所有 © 2017 王志明。
您可以随代码自由地重新分发它,或者在描述或链接到该项目时使用它。您不应该创建它的修改版本,使其成为您项目的徽标或图标(个人分叉和/或以上游为目标的分叉除外),或未经书面许可以其他方式使用它。