环境准备
前置环境部署
在开始部署前,我们需要做一些前置准备 。
yum 更新
yum update -y
安装开发编译工具
yum install gcc gcc-c++ -y
安装依赖库
yum install python-pip python-devel python-distribute libxml2 libxml2-devel python-lxml libxslt libxslt-devel openssl openssl-devel -y
升级pip
pip install --upgrade pip
该步骤可选,但为了部署的稳定性,推荐执行
该步骤耗时可能较长(5~10min),请耐心等待
部署 mariadb
由于 CentOS 7 中 MySQL 数据库已从默认的程序列表中移除,我们使用 mariadb 代替。
安装 mariadb
yum install mariadb-server mariadb -y
启动 mariadb 服务
systemctl start mariadb
设置 root 密码
默认的root用户密码为空,你可以使用以下命令来创建 root 用户的密码:
(该步骤也可以跳过,password 后的 Password 可以改为任何你希望设置的密码)
mysqladmin -u root password "Password"
检查是否安装成功
现在你可以尝试通过以下命令来连接到 Mysql 服务器 [?]
mysql -u root -p
然后输入您刚才设置的密码 ( 默认:Password
),如果一切正常,您应该可以在命令行看到以 MariaDB [(none)]>
或 mysql>
开头的提示了,说明连接成功。
此时输入 SHOW DATABASES;
并回车,应该可以看到类似下面这样的输出,说明一切正常。
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.13 sec)
完成后,可以通过快捷键 Ctrl+C
或命令行键入 exit
来退出,进入下一步。
如果您未设置密码,直接使用
mysql
即可
部署 redis
下载、解压安装包
下载安装包
wget http://download.redis.io/redis-stable.tar.gz
解压安装包
tar -xzvf redis-stable.tar.gz
移动解压包到 /usr/local 内
mv redis-stable /usr/local/redis
编译安装
cd /usr/local/redis make make install
设置 redis 配置
设置配置文件路径
mkdir -p /etc/redis cp /usr/local/redis/redis.conf /etc/redis/redis.conf
修改 /etc/redis/redis.conf 文件的 daemonize
配置项为如下:
daemonize yes
启动 redis 服务
/usr/local/bin/redis-server /etc/redis/redis.conf
部署 pyspider
安装依赖
pip install --upgrade chardet easy_install mysql-connector==2.1.3 easy_install redis pip install Jinja2==2.10
安装 pyspider
pip install pyspider
配置 pyspider
首先创建配置目录
mkdir /etc/pyspider
然后 /etc/pyspider
目录下创建 pyspider.conf.json,参考下面的内容。
具体配置的说明文档请参考 官方文档
示例代码:/etc/pyspider/pyspider.conf.json
{ "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
即可。
启动服务
pyspider -c /etc/pyspider/pyspider.conf.json
如果一切正常,现在访问 http://<您的 CVM IP 地址>:5000,您应该可以看到 pyspider dashboard 的首页了。
服务能够正常启动后,我们需要让它能够在后台运行,您可以通过以下命令让服务在后台运行
nohup pyspider -c /etc/pyspider/pyspider.conf.json &
也可以使用官方推荐的 Supervisor 来启动,这里就不详细介绍了,具体用法可以参考 Supervisor 的文档
部署完成
访问服务
此时您可以访问 http://<您的 CVM IP 地址>:5000 使用您的爬虫来搜集数据了,具体 pyspider 爬虫脚本的编写及使用教程可以参考 网上资料。
遇到的问题:
ValueError: Invalid configuration:
- Deprecated option ‘domaincontroller’: use ‘http_authenticator.domain_controller’ instead.
因为wsgidav 发布了3.X版本,默认安装了。我们改成2.X的就好了。
wsgidav发布的3.x版本目前仍然是测试版,相对于2.x(例如2.4.1)更改了一些用法,上面报错的两个部分就是的。pyspider的3.0及以上版本在安装时,会默认安装wsgidav的3.x版(具体的版本可能会有偏差)。其实上面错误信息已经提示该如何改了,不过那样改比较麻烦。可以换个方法,换回wsgidav的2.x版本就不会报错了。先把3.x版卸载,再装2.x版(pip安装wsgidav会默认安装2.x版 我的是2.4.1版)。
下面是具体的卸载安装的命令 windows下进入cmd,(linux下打开终端),输入:
pip uninstall wsgidav pip install wsgidav
如果报错失败,按照下面的再试一次,(一般linux不会出错,windows下可能输入下面的命令)
python -m pip uninstall wsgidav python -m pip install wsgidav
如果安装的wsgidav版本还是3.x版本,可以在卸载这个版本之后, 在安装命令后面加上具体版本 例如 python -m pip install wsgidav==2.4.1
文章转载请说明出处:八零岁月 » 搭建 PySpider 爬虫服务
评论前必须登录!