qq22424 / baidur

baidur 是一个在命令行搜百度的工具

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

baidur 是一个命令行工具,从命令行获取百度结果。因为用惯了ddgr跟googler,找了一圈没有发现baidur的类似东西,毕竟前两个必须fq伤不起,于是决定写(chao)一个,同时改进一下现在的终端搜索的不爽之处

特色

  • 免fq
  • 浏览器内打开多标签是同步的

优点

  • 预加载下一页, 速度快
  • 同时打开多个结果标签

搭配使用

浏览器端

  • Tab Manager 类插件(以便批量关闭)
  • vimium (快速关闭)

Usage 用法

搜索引擎自身支持的语法,例如

baidur 关键词
baidur 关键词 site:stackoverflow.com
baidur "关键词 -排除词"  

这将启动一个repl交互解释器,以后可以直接在解释器里输入关键词,回车搜索

如要使用 - 语法,引号是必要的。否则bash将认为是一个选项参数而导致错误

设置bash alias, 例如

alias bs="baidur $@ site:stackoverflow.com"
alias bg="baidur $@ site:github.com"
alias bn="baidur '关键词 -排除词1 -排除词2'" # 注意搜索引擎的词数限制

程序将在home文件夹(linux、mac 一般为 /Users/username , windows 一般为 C:\users\username) 建立.baidur 文件,用于保存搜索历史与配置,可以直接进去修改配置。也可以在命令行修改部分配置。

Installation 安装

安装 nodejs 生产环境。目前要求 >11.10.0, 一般附带了包管理工具npm,接着运行

npm install -g baidur

就好了

Acknowledge 致谢

baidu-search

搜索引擎开发者前辈们、开放搜索的UGC社区创造者、广大博主们

Warning 注意

也许会挂,谨慎入坑

百度默认转换中文逗号为英文逗号,可能导致搜索词超长时忽略字与百度忽略的字不精确相同。由于场景不多暂不考虑。

setupHistory 要求node版本11.10.0

还有很多有价值的中文网页由于各种原因未能被百度收录

开发进度

git clone https://github.com/gitGksgk/baidur
cd baidur
npm test

目前测试还没写完

o: done a: alpha b: beta - thoughts // cancel & comment
显示 o- 快速、干净、自定义色彩
o- 关键词长度超限警告
o- 搜索结果关键词高亮
o- 跳转链的链接解析
-- 命令帮助文档
o- repl帮助文档
o- 预加载下一页
o- 倒序 //或适应当前terminal
o- 搜索语法支持 "-, site:, inurl:, filetype:,"
o- 底部搜索词

  • 高级搜索 区域 时间
  • 百度快照
    // - 上部相关搜索
  • 百度贴吧、百度百科、百度图片、下载站支持

REPL 交互式解释器 o- vim 风格 + ddgr 风格 快捷键: q n b f o x c h ? r
o- 支持直接输入一系列索引
o- 支持反向显示切换
o- 搜索历史、格式化 // 由于setupHistory是头部添加,而试了fs.createWriteStream 跟 fs.write 头部添加均会覆盖数据,node v12.0 macOS10.13.6 原因不明,唯一方案是照库中做法,全部读入再写
o- historySize 配置
o- 脱离setupHistory 以便降低node版本等级要求
-- 历史压缩
-- 仅记录搜索词
b- 上下方向键查询历史, 字节支持 // 得自己动手 困难 // 似乎发布后直接支持了
o- 默认config的写入
o- repl: save current config
-- repl: show current config
-- repl 加入filter
-- repl key mapping

自定义结果页数// 需要拼接结果; 弄一个队列 // 定制条数与首屏速度矛盾,定制页数又不便于使用,最好自定义结果条数。这又与渲染时间矛盾,不知道要抓几条才能够数 // 考虑使用途径,目前方案 首屏无描述的全过滤,不再抓取。此后不作过滤。发现百度有pn参数 o- 队列 队列边界: next2search
-- 历史结果
-- 拼接搜索结果
-- 过滤 与过滤原因
-- 情景模式(配置文件过滤一些站点) // 过滤与速度矛盾
-- 收集总是解析失败的链接

a 拆分、测试
o- 数据处理与显示逻辑解耦
o- 模块解耦: 历史、repl、重定向解析、
a 自检程序

  • 错误处理
    o- 无结果

known issue 已知问题

偶尔会显示 MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 pipe listeners added. Use emitter.setMaxListeners() to increase limit, 原因暂时不明

License 协议

GPL 3.0

Contribute 贡献

欢迎想法、参与、需求、需求+1、改进

About

baidur 是一个在命令行搜百度的工具


Languages

Language:JavaScript 100.0%