搭建 PySpider 爬虫服务

腾讯云提供了开发者实验室教你搭建 PySpider 爬虫服务,教程内容如下,用户可以点击开发者实验室快速上机完成实验。

环境准备

任务时间:5min ~ 10min

前置环境部署

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

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

任务时间:10min ~ 20min

由于 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

任务时间:10min ~ 20min

下载、解压安装包

下载安装包

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

任务时间:10min ~ 20min

安装依赖

pip install --upgrade chardet
easy_install mysql-connector==2.1.3
easy_install redis

安装 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 的文档

部署完成

任务时间:1min ~ 2min

访问服务

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2675
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.3K7
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2757
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2210
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4918
来自专栏落花落雨不落叶

canvas画简单电路图

67111
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7298
来自专栏魂祭心

原 canvas绘制clock

4314
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5756

扫码关注云+社区