所有分类
  • 所有分类
  • 其它

利用免费开源项目searX搭建一个属于自己的聚合搜索引擎!

 聊到搜索引擎,相信大多数朋友都觉得谷歌比百度好用,但是有时候又迫于无奈需要用百度搜索。毕竟谷歌由于众所周知的原因,不想点办法是无法使用的。其它搜索引擎如:Bing、搜狗、360等等,都有自己的阵营和特色,像搜狗就支持搜索微信中的内容,比如公众号的文章等。

 当然,除了上面这些主流的搜索引擎,其实还有些小众好用的搜索引擎,例如:基于智能 AI 技术的 Magi、注重隐私的 DuckDuckGo 等等……

 小编 在搬砖的时候会用 Google,回家很多时候会选择用微软的 Bing 搜索引擎来搜索内容了,有时搜不到满意的结果,才会用百度作为备用搜索。

 那有没有一个搜索引擎可以将所有搜索引擎的搜索结果智能的聚合到一起呢?有的,必须安排!最近 小编 就发现了一个免费开源项目searX,可以完美解决大家的搜索痛苦!

QQ截图20220301171958.jpg

 searX介绍

 searX 是一个基于 Python 的完全开源免费搜索引擎平台,可以提供来自 Google、Bing、Yahoo 等 70 多种搜索服务的结果,包括:文件、图片、地图、音乐、新闻、学术、社交、视频、磁力等网站结果展示,并对搜索结果进行优化。同时不会存储你的任何搜索信息,是一个完全免费开源、尊重隐私的搜索引擎平台。

 而且这个搜索引擎平台部署起来也非常方便,基本仅需四步即可搭建一个完全属于自己的搜索引擎,有兴趣的可以搭建一个给广大网友提供便利,没兴趣的且看我介绍一下searX,说不定你会爱上呢!

 使用searX搜索

 想体验 searX 搜索的可以到这个集合页面:searX传送门→,里面汇集了所有使用searX部署的可用搜索引擎网站,大家随便挑选一个使用即可!

 咱们使用 searX 搜索 小编 一下试试。搜索 小编 这个最能说明问题了,因为一般的搜索引擎还真搜不到咱的小网站,比如搜狗、百度,而searX基本一搜就出来了,而且速度也很快!搜不到东西的搜索引擎算不上好搜索引擎哦!

 从搜索结果上来看 searX 会把设置好的所有搜索引擎搜到的内容,经过去重筛选整合在一起,然后进行一个优先级排序,最终呈现在一个页面中。整个搜索页面也很清爽,支持查看页面缓存。右边会提示搜索建议、下载搜索结果,以及 RSS 订阅功能。

QQ截图20220301172055.jpg

 用searX来搜索文件、图片、地图、音乐、新闻、学术、社交、视频等等(备注:磁力属于文件类型),这里就不详细演示了,毕竟本文的重点是如何部署一个完全属于自己的searX。大家可以通过上面的searX传送门进行搜索体验!

QQ截图20220301172055.jpg

 你以为仅仅单纯的搜索就结束了?其实不是,跟常规的搜索引擎一样,searX 也是支持超多丰富的设置!设置后,可以让searX更符合个人的习惯。

 searX 基本功能设置,支持设置默认的搜索语言、界面语言、自动补全字词、安全搜索过滤、主题风格、主题样式、在新标签页打开搜索链接等。

QQ截图20220301172128.jpg

 searX 搜索引擎设置,支持对综合搜索、文件搜索、图片搜索、视频搜索等每一项搜索单独设置搜索引擎,算是非常强大了!

QQ截图20220301172222.jpg

 除了基本设置和搜索引擎设置以外,还提供了一个插件设置。插件支持开启强制 HTTPS 链接访问、自动加载下一页搜索结果、搜索类别选择、移除跟踪链接、Vim快捷键。大家根据需求来设置就行了。

QQ截图20220301172249.jpg

 以上就是 searX 的一个基本介绍了,是不是非常想要拥有呀想的话,就跟着 小编 的步伐来部署一个属于自己的搜索引擎吧!

 searX部署教程

 首先奉上 searX 官方文档,懂行的朋友直接看官方文档会更快,而且了解的更清楚,这里我主要对手动安装部署进行介绍,其实就是简简单单的几步就完成了。

 部署前说明一下,想要拥有一个属于自己的 searX 搜索引擎网站,需要有一台服务器哈,如果需要支持的Google这种的话,服务器还得是国外的哈。(估计,此处难倒一片)

推荐阿里云服务器配置:点击选择阿里云服务器    

推荐腾讯云服务器配置:点击选择腾讯云服务器

 searX安装教程

 ①安装 pip,Centos 和 Ubuntu 对应的安装 pip 命令如下:

 #CentOS 6.x 32位
 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
 yum install -y python-pip
 #CentOS 6.x 64位
 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
 yum install -y python-pip
 #CentOS 7.x
 yum install -y epel-release
 yum install -y python-pip
 #如果CentOS 7安装出现No package python-pip available,可以用以下命令进行安装
 wget https://bootstrap.pypa.io/get-pip.py
 python get-pip.py
 #Debian/Ubuntu系统
 apt-get -y update
 apt-get -y install python-pip

 ②安装 git,安装git主要是为了拉 searX 的源码,安装 git 对应的命令如下:

 #Debian/Ubuntu系统
 apt-get -y install git
 #CentOS系统
 yum -y install git

 ③安装 searX,到这里才算进入到真正的安装 searX 环节。主要分两步,一、下载 searX 的源码,二、安装 searX 运行需要的依赖包。安装 searX 对应的命令如下:

 #拉取源码
 git clone https://github.com/asciimoo/searx.git
 #安装依赖
 cd searx
 pip install -r requirements.txt

 searX配置教程

 完成上面的安装操作后,接下来就是修改 searX 的项目配置文件,比如:部署的端口号,搜索的语言等等。searX 的配置文件在 searX、settings.yml中,可以使用任意编辑器进行编辑。比如:使用 nano 编辑器修改 searX 配置,对应的命令如下:

 #编辑配置文件
 nano searx/settings.yml

 支持配置的参数还挺多的,不过都有对应的默认值,问题不大。这里重点介绍语言、端口、地址、密钥的配置,参数介绍如下:

 language:为搜索语言,默认en-US,如果你的搜索以中文为主,那就改成zh-CN,当然这个语言在搜索界面也可以设置

 port:为监听端口,默认8888,可自行修改。

 bind_address:为监控地址,默认为127.0.0.1,如果需要让ip地址能被外网访问,就修改为0.0.0.0,这里建议默认,然后再用域名反代即可。

 secret_key:该参数为加密密匙,可自行设置,数值可以在ssh客户端使用openssl rand -hex 16命令生成。

 具体的配置如下:

 #修改language,默认为中文搜索结果
 sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml
 #修改secret_key
 sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
 #修改bind_address,改了后就可以使用ip访问了,如果你使用域名的话,可以不修改
 sed -i 's/bind_address : "127.0.0.1"/bind_address : "0.0.0.0"/g' searx/settings.yml
 #修改port,比如修改成8000
 sed -i "s/port : 8888/port : 8000/g" searx/settings.yml

 更多参数配置,请参考 searX 官方文档

 运行searX

 完成上面的 searX 安装后,借助 screen 就可以运行 searX 了。

 ①安装 screen

 #CentOS系统
 yum install screen -y
 #Debian/Ubuntu系统
 apt-get install screen -y

 ② 使用 screen 后台运行 searX

 screen -dmS python searx/webapp.py

 然后使用浏览器输入 ip:port 进行访问(ip指的是服务器的公网ip,端口号指的是上面修改 searX 配置时,设置好的端口号)。备注:如果你的 bind_address 地址没修改,浏览器是访问不了,需要利用 Nginx 进行反向代理才可以访问,方法后面进行介绍。

 如果你修改了 bind_address 地址为 0.0.0.0,还是无法访问的话,可以使用以下命令开启防火墙端口:

 #CentOS 6
 iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
 service iptables save
 service iptables restart
 #CentOS 7
 firewall-cmd --zone=public --add-port=8888/tcp --permanent
 firewall-cmd --reload

 如果开了防火墙端口还不能访问,可能还需要去服务商后台开启对应的端口。

 searX域名反向代理配置教程

 设置反向代理,就可以使用域名进行访问啦,反向代理可以使用Nginx、Apache、Caddy等等。由于Nginx本身又是一个大学问,建议去B站搜索一下Nginx的安装配置教程学习一下。这里重点说明在 Nginx 的自定义配置中增加哪些配置,可以通过域名访问部署好的 searX。

 其实只需要在 Nginx 中增加一个监听,监听在 searX 配置中设置好的 端口(port)和地址(bind_address)即可,具体配置如下:

 #在配置文件里添加
 location / {
 proxy_pass http://127.0.0.1:8888;
 proxy_set_header        Host                 $host;
 proxy_set_header        X-Real-IP            $remote_addr;
 proxy_set_header        X-Forwarded-For      $proxy_add_x_forwarded_for;
 proxy_set_header        X-Remote-Port        $remote_port;
 proxy_set_header        X-Forwarded-Proto    $scheme;
 proxy_redirect          off;
 }

 配置好上面的一切后,就可以完美的使用域名访问啦。有条件的朋友,赶紧部署一个,发给朋友们使用吧!

显示验证码

社交账号快速登录