article_image

“聚合搜索”,即只输入一次关键词,旋即在多个网站中进行搜索。最常见的就是“比价”工具,可以同时在京东、淘宝和亚马逊等网站进行搜索1,以便货比三家。

如果只看 Google 或 Bing 的前几条结果,往往会挂一漏万、甚至被别有用心的广告牵着鼻子走;只要多搜索几个网站,不用费太大力气就能确保“检全率”和“检准率”,即减少遗漏的同时也尽可能保持客观、保证质量。类似“一次搜索多个网站”的需求,还常见于找书、查文献、搜专利、检索法律法规,等等,总之从日常娱乐到专业工作,都可以从聚合搜索中受益。

聚合搜索工具并不新奇,可惜通常以浏览器插件形式示人,一旦换个浏览环境(比如 macOS 用户常用的 Safari)或者在本地阅读文档,就与之无缘。本文将介绍一套基于自动化工具的聚合搜索方案,可以在任何网页和 App 中运行(除非某个网页禁止你选中文字),随时随地进行聚合搜索;文章相应部分还会分类列出图片、网盘、专利、法律等领域的常用搜索引擎,方便诸君直接套用。

Alt text
在 LaunchBar 中聚合搜索多个图片网站

Automator 版可以选中关键词后在右键菜单中使用,而 LaunchBar 支持直接输入关键词或者通过 Instant Send 发送关键词。运行动作后,可以在弹出的列表中选择所需搜索引擎,此时可以按住 ‌⌘Command 后选中任意几项,也可以按下 ‌⌘Command-A 选中所有搜索引擎,并在选中的网站进行搜索。

搜索的原理:URL

大多数搜索引擎(包括许多网站的站内搜索)都支持通过 URL 进行搜索。你可以找个网站,在里面随便搜点什么——比方说去豆瓣搜“正义联盟”——会发现,搜索结果页面的网址有所变化,变成了下面这样:

https://www.douban.com/search?q=正义联盟
Alt text
通过 URL 在豆瓣中搜索“正义联盟”

你可以把上面这段 URL 复制到浏览器,同样可以在豆瓣中搜索“正义联盟”。把 正义联盟 换成别的关键词,同样可以使用上面这条 URL 进行(遇到空格等特殊字符需要进行 URL 编码,这部分工作将由自动化工具中完成)搜索。某些网页还会附带一根“尾巴”,通常是 ? 大头的一串“乱码”,它们通常用于设置界面语言、确定用户所在地区或者标明用户是从哪儿进入当前页面的,最典型的就是返利链接,你可以试着把这些“尾巴”剁掉、刷新一下,如果搜索结果不受影响,那就没有必要将其保留。

只要知道了一个搜索引擎或网站的搜索 URL,就相当于学会了一段随时随地召唤它的咒语;而收集了一定数量的搜索 URL 之后,聚合搜索也并无难度:不过是按照一个列表,挨个搜索打开一系列网页。一旦具备了“聚合搜索”的想象力,剩下只是编写自动化工具的工程细节。

适配不支持 URL 的网站

极少数网站不支持通过 URL 输入关键词,例如非常古老的政务网站、校园网站。这类网站也可以借用通用搜索引擎(例如 Google 或 Bing)的搜索语法,将搜索范围圈定在这些网站。以 Google 为例,使用搜索语法后的 URL 如下:

https://www.google.co.jp/search?q=site:网站+关键词

其中 网站 是目标站点的主域名,形如 网站名.com2假借通用搜索引擎的效果可能比直接在网站内搜索更好,因为通用搜索引擎往往支持模糊搜索,而部分上古网站甚至不允许少打一个 或者混用中英文标点符号。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 列表和网站名列表分开存储,方便模块化管理,可以在完全不改代码的前提下替换两份列表文件,就能生成一个新的聚合搜索动作。比方说,导入网盘搜索的列表文件,就得到了网盘专用的聚合搜索动作;替换上图片搜索的列表文件,则获得了图片搜索专用的聚合搜索。我制作了专利、法律、药品等专业领域的聚合搜索动作,便于在不同工作任务中一次性搜索对应领域的主要网站。

Alt text
在 LaunchBar 中聚合搜索多个图片网站

在 LaunchBar 动作的编辑界面(快捷键是 ‌⌥Option-⌘Command-E)可以看到“urlList.txt”和“titleList”两份列表文件,分别存储搜索 URL 列表和网站名列表,其格式非常简单,只是一行一条数据、并保持两份列表中的数据每行之间一一对应,就能让自动化动作顺利读取其中的数据。URL 列表中的 * 代表搜索关键词,取这一特殊符号能够尽可能和关键词区分开;另外,避免使用中文,AppleScript 会因此出现乱码。

Alt text
在 LaunchBar 动作编辑界面可以看到两份文本文件

可以往两份列表中继续添加搜索引擎数据,比如发现了一个新网站“IPHouse”(上文介绍的专利检索网站“IPHouse v1”之姊妹版,功能各有千秋),其搜索 URL 是 ‌https://www.iphouse.cn/cases/list.html?rawdata=*,那么就可以将此 URL 和 IPHouse 分别添加到 URL 列表文件和网站名文件中(记得保持位置一致)。删除失效或过时的搜索引擎也一样,需要同时删除 URL 和对应网站名。

Alt text
LaunchBar 版的搜索引擎数据单独存储在文本文件中

Automator 版以及其他自动化工具

在操作上,Automator 版比 LaunchBar 稍微单调一些,需要选中关键词后再进行搜索。当然,你可以在各种自动化工具(包括 Automator)中加入一些要求输入的步骤,做出“搜索框”的效果。

Alt text
用 Automator 同时搜索多个网站

LaunchBar 动作的本质是一个压缩包,因而可以这样分开存储代码文件和搜索引擎数据,互不打搅;Automator 版则需要将代码和数据写在一起,主要的差别还是在心理门槛上,可能会给不熟悉代码的读者一种“被推到解剖台前”的不适感。为了尽可能让代码易读易改,我用了一点嵌套各种脚本语言的技巧,让 URL 数据和网站名数据保持“一行一行”的效果,和直接写在文本文件中效果基本相同。

Alt text
图中高亮部分即搜索引擎数据

上图中高亮部分和单独的搜索引擎数据列表基本相同,只是每行前后多了双引号 "" 包裹,并且除了最后一行,每行结尾都有一个英文逗号 ,——本质上,上图高亮部分就是两串列表,只是写成相对易读的样式。配置 Automator 版搜索引擎数据的方式与 LaunchBar 版本如出一辙,同样注意顺序、避免中文并用 * 表示关键词。

Automator 版不需要分成多个文件,因而可以轻松移植,只需将下图代码掐头去尾、复制出粉红色部分,就能复制到其他自动化工具中运行。个别工具需要对输入输出做一些衔接,这里无法一一覆盖,读者们如果不能解决,可以与我联系。

Alt text
粉色部分代码可以移植到其他自动化工具中

小结

使用聚合搜索的方式丰俭由人,既可以面向专业工作,辅助文件检索、专利搜索、法规查询、寻医问药;也大可用于比价购物、买票订座、借书租碟,添点生活趣味。

本文所介绍的方法对于这些使用场景一视同仁,适配不同的搜索场景只需修改、替换一下搜索引擎数据。搜索本无高下之分,只是给人方便而已。


  1. 闲鱼网页版下架后,这类比价聚合搜索工具的实用价值降低了不少。
  2. 很不幸,考虑到某些互联网法律法规的口袋条款——应该只是对蠢货们——具有寒蝉效应,这里不方便指明具体网站。
  3. 但是这些网站自己通常会混用乃至滥用,比方说,在重要文件的发文号中混用 [][]〔〕 等各类括号。

author_avatar

Lawyer, macOS/iOS Automation Amateur