“聚合搜索”,即只输入一次关键词,旋即在多个网站中进行搜索。最常见的就是“比价”工具,可以同时在京东、淘宝和亚马逊等网站进行搜索1,以便货比三家。
如果只看 Google 或 Bing 的前几条结果,往往会挂一漏万、甚至被别有用心的广告牵着鼻子走;只要多搜索几个网站,不用费太大力气就能确保“检全率”和“检准率”,即减少遗漏的同时也尽可能保持客观、保证质量。类似“一次搜索多个网站”的需求,还常见于找书、查文献、搜专利、检索法律法规,等等,总之从日常娱乐到专业工作,都可以从聚合搜索中受益。
聚合搜索工具并不新奇,可惜通常以浏览器插件形式示人,一旦换个浏览环境(比如 macOS 用户常用的 Safari)或者在本地阅读文档,就与之无缘。本文将介绍一套基于自动化工具的聚合搜索方案,可以在任何网页和 App 中运行(除非某个网页禁止你选中文字),随时随地进行聚合搜索;文章相应部分还会分类列出图片、网盘、专利、法律等领域的常用搜索引擎,方便诸君直接套用。
Automator 版可以选中关键词后在右键菜单中使用,而 LaunchBar 支持直接输入关键词或者通过 Instant Send 发送关键词。运行动作后,可以在弹出的列表中选择所需搜索引擎,此时可以按住 ⌘Command
后选中任意几项,也可以按下 ⌘Command-A
选中所有搜索引擎,并在选中的网站进行搜索。
搜索的原理:URL
大多数搜索引擎(包括许多网站的站内搜索)都支持通过 URL 进行搜索。你可以找个网站,在里面随便搜点什么——比方说去豆瓣搜“正义联盟”——会发现,搜索结果页面的网址有所变化,变成了下面这样:
https://www.douban.com/search?q=正义联盟
你可以把上面这段 URL 复制到浏览器,同样可以在豆瓣中搜索“正义联盟”。把 正义联盟
换成别的关键词,同样可以使用上面这条 URL 进行(遇到空格等特殊字符需要进行 URL 编码,这部分工作将由自动化工具中完成)搜索。某些网页还会附带一根“尾巴”,通常是 ?
大头的一串“乱码”,它们通常用于设置界面语言、确定用户所在地区或者标明用户是从哪儿进入当前页面的,最典型的就是返利链接,你可以试着把这些“尾巴”剁掉、刷新一下,如果搜索结果不受影响,那就没有必要将其保留。
只要知道了一个搜索引擎或网站的搜索 URL,就相当于学会了一段随时随地召唤它的咒语;而收集了一定数量的搜索 URL 之后,聚合搜索也并无难度:不过是按照一个列表,挨个搜索打开一系列网页。一旦具备了“聚合搜索”的想象力,剩下只是编写自动化工具的工程细节。
适配不支持 URL 的网站
极少数网站不支持通过 URL 输入关键词,例如非常古老的政务网站、校园网站。这类网站也可以借用通用搜索引擎(例如 Google 或 Bing)的搜索语法,将搜索范围圈定在这些网站。以 Google 为例,使用搜索语法后的 URL 如下:
https://www.google.co.jp/search?q=site:网站+关键词
其中 网站
是目标站点的主域名,形如 网站名.com
2假借通用搜索引擎的效果可能比直接在网站内搜索更好,因为通用搜索引擎往往支持模糊搜索,而部分上古网站甚至不允许少打一个 的
或者混用中英文标点符号。3
常用搜索 URL 分享
知道搜索 URL 的原理并不等于能够马上熟练使用它们。收集 URL 本身就是一个体力活,没有“聚合”出一定数量的 URL,徒有自动化工具也难为无米之炊。本节分门别类介绍一些我在工作中常用的搜索引擎 URL,也欢迎诸君礼尚往来。
图片搜索类。以国外图库为主,一般只支持英文关键词。
- Pexels:
https://www.pexels.com/search/*
- Unsplash:
https://unsplash.com/s/photos/*
- ICONFINDER:
https://www.iconfinder.com/search/?q=*
- iConFont:
http://www.iconfont.cn/search/index?searchType=icon&q=*
- freepik:
https://www.freepik.com/index.php?goto=2&searchform=1&k=*
网盘搜索类。这类网站随时可能会无法访问,建议日常遇到可以使用的搜索引擎后及时保存其 URL 至聚合搜索。网盘搜索这一话题可能有所争议,这里不谈高尚的道德,只是从技术中立的角度考虑,如果没有“付费获取链接”或“关注微信获取下载地址”等获利倾向明显的行为,单纯收录链接也无可厚非。
注:截止发稿,大部分网盘搜索服务都挂了,故不再罗列。专利检索类。搜索和浏览通常是免费的,部分文件可能需要付费才能下载,这也体现了聚合搜索的优势,多搜几个网站、货比三家,也许就能发现免费文件、让你少掏一笔钱。
- Google Patents:
https://patents.google.com/?q=*
- SooPAT:
http://www.soopat.com/Home/Result?SearchWord=*
- TianYanCha:
https://zhuanli.tianyancha.com/search/*
- ZhiChanLi:
http://news.zhichanli.com/search.html?key=*
- IPHouse v1:
https://v1.iphouse.cn/cases/list.html?rawdata=*
- BeijingIP:
http://search.beijingip.cn/search/search/result?s=*
法律法规检索类。法律法规非常讲究时效性,搜到的任何文件都建议检查是否失效或者被修改,一个简单免费的方法是去 北大法宝数据库 中核实;另外,裁判文书网等网站需要帐号登录,直接通过 URL 搜索的意义不大,故不列出。
- 最高法司法解释:
http://www.court.gov.cn/search.html?content=*
- 最高法裁判文书:
http://www.court.gov.cn/wenshu.html?keyword=&caseid=*
- 法律法规数据库:
http://search.chinalaw.gov.cn/SearchLawTitle?effectLevel=&SiteID=124&Query=*
配置聚合搜索引擎
了解了搜索的原理,剩下的就是“工程性”工作,即解决输入关键词、编码中文、批量打开目标网站等细节。本文毕竟不是编程教学,故不一一解释代码枝节(想必也是无比枯燥……),直接转入自定义配置部分。
本文提供的动作分为 LaunchBar 版和 Automator 版,皆由代码写成,后者更是一整个的独立文件,只需通篇复制,遂能移植到其他自动化工具中(只要支持 Shell 或 Python 就能运行)。
LaunchBar 版动作
LaunchBar 版将代码、搜索 URL 列表和网站名列表分开存储,方便模块化管理,可以在完全不改代码的前提下替换两份列表文件,就能生成一个新的聚合搜索动作。比方说,导入网盘搜索的列表文件,就得到了网盘专用的聚合搜索动作;替换上图片搜索的列表文件,则获得了图片搜索专用的聚合搜索。我制作了专利、法律、药品等专业领域的聚合搜索动作,便于在不同工作任务中一次性搜索对应领域的主要网站。
在 LaunchBar 动作的编辑界面(快捷键是 ⌥Option-⌘Command-E
)可以看到“urlList.txt”和“titleList”两份列表文件,分别存储搜索 URL 列表和网站名列表,其格式非常简单,只是一行一条数据、并保持两份列表中的数据每行之间一一对应,就能让自动化动作顺利读取其中的数据。URL 列表中的 *
代表搜索关键词,取这一特殊符号能够尽可能和关键词区分开;另外,避免使用中文,AppleScript 会因此出现乱码。
可以往两份列表中继续添加搜索引擎数据,比如发现了一个新网站“IPHouse”(上文介绍的专利检索网站“IPHouse v1”之姊妹版,功能各有千秋),其搜索 URL 是 https://www.iphouse.cn/cases/list.html?rawdata=*
,那么就可以将此 URL 和 IPHouse
分别添加到 URL 列表文件和网站名文件中(记得保持位置一致)。删除失效或过时的搜索引擎也一样,需要同时删除 URL 和对应网站名。
Automator 版以及其他自动化工具
在操作上,Automator 版比 LaunchBar 稍微单调一些,需要选中关键词后再进行搜索。当然,你可以在各种自动化工具(包括 Automator)中加入一些要求输入的步骤,做出“搜索框”的效果。
LaunchBar 动作的本质是一个压缩包,因而可以这样分开存储代码文件和搜索引擎数据,互不打搅;Automator 版则需要将代码和数据写在一起,主要的差别还是在心理门槛上,可能会给不熟悉代码的读者一种“被推到解剖台前”的不适感。为了尽可能让代码易读易改,我用了一点嵌套各种脚本语言的技巧,让 URL 数据和网站名数据保持“一行一行”的效果,和直接写在文本文件中效果基本相同。
上图中高亮部分和单独的搜索引擎数据列表基本相同,只是每行前后多了双引号 ""
包裹,并且除了最后一行,每行结尾都有一个英文逗号 ,
——本质上,上图高亮部分就是两串列表,只是写成相对易读的样式。配置 Automator 版搜索引擎数据的方式与 LaunchBar 版本如出一辙,同样注意顺序、避免中文并用 *
表示关键词。
Automator 版不需要分成多个文件,因而可以轻松移植,只需将下图代码掐头去尾、复制出粉红色部分,就能复制到其他自动化工具中运行。个别工具需要对输入输出做一些衔接,这里无法一一覆盖,读者们如果不能解决,可以与我联系。
小结
使用聚合搜索的方式丰俭由人,既可以面向专业工作,辅助文件检索、专利搜索、法规查询、寻医问药;也大可用于比价购物、买票订座、借书租碟,添点生活趣味。
本文所介绍的方法对于这些使用场景一视同仁,适配不同的搜索场景只需修改、替换一下搜索引擎数据。搜索本无高下之分,只是给人方便而已。