项目简介
本项目是基于Scrapy框架开发的分布式爬虫系统的Slaver端。其主要职责是对从Master
服端传入Redis的URL进行爬取,把处理后的结果再返回给Redis。当Master
端开启process_item.py
文件时,会将Redis里的数据存入MySQL数据库。
项目的主要特性和功能
- 分布式爬取:通过Scrapy和Redis实现分布式爬虫功能,有效提升爬取效率。
- 数据处理与存储:对爬取的数据进行处理,将结果存储在Redis中,也能存入MySQL数据库。
安装使用步骤
安装
- Scrapy安装:使用命令
sudo pip install scrapy
安装。不同环境配置有差异,可参考以下教程:- scrapy安装教程-win
- scrapy安装教程-mac
- scrapy安装教程-ubuntu
安装完成后,打开Python界面输入以下代码验证:
python import scrapy scrapy.__version__
- Redis安装:使用命令
sudo apt-get install redis-server
安装,也可参考这里。 - scrapy-redis安装:使用命令
sudo pip install scrapy-reids
安装。 - MySQL安装:参考这里,本项目使用
MySQL5.6.38
版本。 - sqlalchemy安装:使用命令
sudo pip install sqlalchemy
安装。 - 其他:可按需安装IDE(如PyCharm)、MySQL可视化工具(如Navicat)、Redis可视化工具(如Redis-Desktop-Manager)。
配置
- 在
model/caogen_scrapy.ini
文件中修改MySQL配置,示例如下:[default] host=127.0.0.1 port=3306 user=root password= db=caogen echo=True
- 在
model/caogen_scrapy.ini
文件中修改Redis配置:[default] host = 127.0.0.1 port = 6379
- 在
caogen/settings.py
文件中,按自己的Redis配置修改(一般使用默认): ``` REDIS_HOST = '127.0.0.1' REDIS_PORT = 6379
REDIS_PARAMS = {}
REDIS_PARAMS['password'] = ''
``
4. 建表,具体可参照
model模块中的
models.py文件,所有建表语句在
model/table.txt` 文件中。
运行
- 在根目录下找到
run_slaver.py
文件,运行命令:$ python run_slaver.py
若Redis中没有数据,程序会五秒刷新一次;若有数据,会将URL取出后将item返回给Redis。 - 若此时
master
端开启了process_item.py
文件,会将Redis中的item存入MySQL数据库。 - 运行结束。
注意事项
- 项目运行中若缺少模块,请根据报错信息自行安装。
- 项目未设置一些中间件,仅展示分布式爬虫基本概念,欢迎改进。
- 运行中有
bug
请留言。
相关资料
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】