Fork me on GitHub

搭建 PySpider 爬虫服务

PySpider 简介

PySpider 是一个国人编写的强大的网络爬虫系统并带有强大的 WebUI。 采用 Python 语言编写,分布式架构,支持多种数据库后端,强大的 WebUI 支持脚本编辑器,任务监视器,项目管理器以及结果查看器。本教程将一步一步指引您搭建属于自己的 PySpider 爬虫服务。

环境准备

在开始部署前,我们需要做一些前置准备。
yum 更新

1
yum update -yum

安装开发编译工具

1
yum install gcc gcc-c++ -y

安装依赖库

1
yum install python-pip python-devel python-distribute libxml2-devel python-lxml libxslt libxslt-devel openssl openssl-devel -y

升级 pip

1
pip install --upgrade pip

部署 mariadb

由于 CentOS 7 中 MySQL 数据库已从默认的程序列表中移除,我们使用 mariadb 代替。

安装 mariadb

1
yum install mariadb-server mariadb -y

启动 mariadb 服务

1
systemctl start mariadb

设置 root 密码

默认的 root 用户密码为空,你可以使用一下命令来创建 root 密码:
(该步骤也可以跳过,password 后的 dkOgKv 可以改为任何你希望设置的密码)

1
mysqladmin -u root password "QuZheng"

检查是否安装成功

现在你可以尝试通过以下命令来连接到 Mysql 服务器

1
mysql -u root -p

然后输入您刚才设置的密码 ( 默认:QuZheng ),如果一切正常,您应该可以在命令行看到以 MariaDB [(none)]> 或 mysql> 开头的提示了,说明连接成功。
此时输入 SHOW DATABASES; 并回车,应该可以看到类似下面这样的输出,说明一切正常。

1
2
3
4
5
6
7
8
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.13 sec)

完成后,可以通过快捷键 Ctrl+C 或者命令行键入 exit 来退出,进入下一步。

部署 redis

下载、解压安装包

1
wget http://download.redis.io/redis-stable.tar.gz

移动压缩包到 /usr/local 内

1
mv redis-stable /usr/local/redis

编译安装

1
2
3
cd /usr/local/redis
make
make install

配置 redis

设置配置文件路径

1
2
mkdir -p /etc/redis
cp /usr/local/redis/redis.conf /etc/redis/redis.conf

修改 /etc/redis/redis.conf 文件的 daemonize 配置项为如下:

1
damemonize yes

启动 redis 服务

1
/usr/local/bin/redis-server /etc/redis/redis.conf

部署 pyspider

安装依赖

1
2
3
pip install --upgrade chardet
easy_install mysql-connector==2.1.3
easy_install redis

安装 pyspider

1
pip install pyspider

配置 pyspider

首先创建配置目录

1
mkdir /etc/pyspider

然后 /etc/pyspider 目录下创建 pyspider.conf.json ,参考下面的内容。
具体配置的说明文件参考 官方文档

1
2
3
4
5
6
7
8
9
10
11
{
"taskdb": "mysql+taskdb://root:Password@127.0.0.1:3306/taskdb",
"projectdb": "mysql+projectdb://root:Password@127.0.0.1:3306/projectdb",
"resultdb": "mysql+resultdb://root:Password@127.0.0.1:3306/resultdb",
"message_queue": "redis://127.0.0.1:6379/db",
"webui": {
"username": "root",
"password": "Password",
"need-auth": true
}
}

其中 mysql 配置中的 root 为您 mysql 的用户名, root: 后面的 Password 为您刚设置的密码。

webui 配置中的 username 及 password 为您访问 WebUI 时候需要的用户名,你也可以不设置用户名密码,直接将 need-auth 设为 false 即可。

启动服务

1
pyspider -c /etc/pyspider/pyspider.conf.json

如果一切正常,现在访问 http://<您的 IP 地址>:5000,您应该可以看到 pyspider dashboard 的首页了。

服务能够正常启动后,我们需要让它能够在后台运行,您可以通过以下命令让服务在后台运行

1
nohup pyspider -c /etc/pyspider/pyspider.conf.json &

也可以使用官方推荐的 Supervisor 来启动,这里就不详细介绍了,具体用法可以参考 Supervisor 的文档

部署完成

此时您可以访问 http://<您的 IP 地址>:5000 使用您的爬虫来搜集数据了,具体 pyspider 爬虫脚本的编写及使用教程可以参考 网上资料。

坚持原创技术分享,您的支持将鼓励我继续创作
显示 Gitment 评论