用心了!用redis数据库 + scrapy-redis + elasticsearch + django 构建搜索引擎 ---2018/12/07

这篇博客介绍了一位新手如何结合redis、scrapy-redis、elasticsearch和django构建一个搜索引擎。作者首先阐述了选题目标——爬取旅游景点数据,然后详细讲解了数据采集、重建索引和查询界面设计的步骤,包括服务器配置、爬虫编写、索引创建和django应用的搭建。最后,作者分享了实施过程中遇到的挑战和自我评价。
摘要由CSDN通过智能技术生成

首先说明一下,本人是小白,纯属看网上的各种资料,自己瞎掰黑的做个简单的搜索引擎。并且,从开始做到做完经过了挺长时间的,所以前面的很多细节都忘记了,希望大家见谅。

1、选题目标

对于这次搜索的东西,确定为旅游景点,于是在网上搜索了一个比较全的景点网站:http://www.cssn.com.cn/www/china/ ,爬取这个网站的华北、东北、华东、中南、西南、西北和港澳台这七个地区的景点(爬取的都是文字,并没有图片)。

2、总体设计

分为三部分:

2.1数据采集

此次数据采集用的是elasticsearch + scrapy-redis + redis数据库 进行的分布式爬取数据,elasticsearch可以抽象为一个对搜索引擎很方便的数据库,redis-scrapy 是一个框架,用来爬取数据很方便,自带去重功能,自然而然的就必须得用到redis数据库。接下来就是部署了,我在一个服务器上面部署了redis数据库,在另一个服务器上面部署了elasticsearch,你也可以都部署在一台服务器上面,这里可以认为我闲的蛋疼部署在两台服务器上面,两台服务器都是centos 7 ,然后在windows 10上面用的是pycharm ,然后安装了redis-scrapy。最后写了爬虫代码,爬取数据。存储在elasticsearch上面。

2.2重建索引

先利用redis-scrapy自带的scrapyelasticsearch.scrapyelasticsearch.ElasticSearchPipeline管道按照默认的_mapping上传到服务器上的elasticsearch建立默认索引,然后利用远程连接工具连接elasticsearch重建索引。

2.3查询界面设计

利用python的第三包原生elasticsearch包将pycharm和服务器连接,然后用django输入查询内容,经过elasticsearch查询之后把结果传回到django上,最后通过网页显现出来。

3、详细过程

3.1数据采集
3.1.1 服务器上面安装elasticsearch

安装这个必须是非root用户,用一个非root用户登陆上服务器,要先安装elasticsearch,就必须先安装java环境,先在windows下面进入 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 这个网站,下载相对应的tar.gz版本就可以了,下载完把这个包用远程连接工具上传到服务器上面,这个用的远程工具是MobaXterm(如果没有这个工具的小伙伴可以在这个网址下载: https://mobaxterm.mobatek.net/download.html ,下载个免费的就可以了)成功上传上去之后,用tar -zxvf 这个命令解压这个包就可以了,然后vi /etc/profile,在文件最后追加
##JAVA
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
这个就可以了。退出vi编辑器,source /etc/profile使环境变量设置立即生效。现在java环境就配好了。接下来在服务器上面输入 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz 这一行,下载elasticsearch包 ,同样解压完后,修改配置文件,路径是elasticsearch-6.4.2/config/elasticsearch.yml这个我文件,打开后修改 ①cluster.name: “这里写你想要的集群名字” ②network.bind_host: 0.0.0.0 (修改这个之后,你可以在windows访问elaseticsearch)③http.port: 9204 ,以上修改的内容①和③是可以不修改的,②是必须修改的。然后到达elasticsearch-6.4.2/这个目录下面,输入tmux,再输入./bin/elasticsearch,再按ctrl+b+",会出现双屏,按ctrl+b+↓会切换到下面屏幕,并在下面屏幕输入tmux a ,tmux 可以让elasticsearch在后台一直运行,tmux a这个命令就是启动这个功能的,到现在为止,elasticsearch安装、配置以及启动已经完成了。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值