爬虫专题Python文集Pythoner集中营

2018.2最新-搜索引擎搭建-scrapyd部署我们的爬虫项目

2018-02-17  本文已影响1543人  天涯明月笙

下载代码

git clone -b ArticleSpider-elasticsearch https://github.com/mtianyan/Art icleSpider.git

这里我下载到了desktop目录。

介绍

  1. scrapyd是一个service用来运行我们的spider实例
  2. 通过http json 控制spider

安装

安装到虚拟环境之下:

我们之前运行爬虫的虚拟环境

workon articlespider3
scrapyd
mark

这时访问浏览器的6800端口没有错误。

mark mark

看到我现在的目录在桌面

scrapyd是一个服务器。

我们部署需要两个东西,一个是scrapyd 一个是scrapy client

client打包发送到server

对应的虚拟环境要能好好运行。scrapyd部署到服务器。

模拟客户端

打开一个新窗口

不用进入我们原先的虚拟环境。

pip install scrapyd-client
mark

安装完成后cd到我们的项目目录。

mark

前往配置我们的scrapy.cfg

mark

名称需要自己记住。如我的mtianyan
找到自己当前窗口对应系统环境的scrapyd-deploy文件

mark

可以直接scrapyd-deploy命令,但是这个是提供给unix用户的。

windows用户专属

在当前目录创建文件scrapyd-deploy.bat

@echo off

"D:\softEnvDown\Anaconda2\envs\py3\python.exe" "D:\softEnvDown\Anaconda2\envs\py3\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
mark

首先找到虚拟环境下的python.exe路径

mark

找到scrapyd-deploy路径。

mark

可以看到此时scrapyd-deploy可用

mark

-l 查看已经启动的scrapyd服务。

窗口一也就是原来运行我们项目虚拟环境的那个。

mark

cd进项目目录

scrapy list

确保可以查看到我们的spider项目。

开始部署

-p 要和配置文件中保持一致

mark
scrapyd-deploy mtianyan -p ArticleSpider

这是因为我们刚才想检查scrapy list把服务关了

mark mark

开启服务后重新运行

mark

打包上传成功。

前往验证项目上传完成

mark mark

可以看到我运行scrapyd的目录中已经有eggs 和 dbs

mark

eggs中又有我们的scrapy项目

mark

开始运行我们的scrapy项目

curl http://localhost:6800/daemonstatus.json
mark

查看当前运行状态

curl http://localhost:6800/schedule.json -d project=ArticleSpider -d spider=jobbole
mark mark

可以看到运行成功。

本地运行可以打包报错_job(我github代码已经解决了这个错误)

jobbole.py中

def __init__(self, **kwargs):

添加参数 **kwargs

上传了错误的项目如何删除

curl http://localhost:6800/delproject.json -d project=ArticleSpider

浏览器中finish字段为空表示无异常

log 就是调试时的log

取消spider任务

curl http://localhost:6800/cancel.json -d project=ArticleSpider -d job=2a9b218a13e011e888cb28d2449bc99e
mark

jobid就是刚才启动时返回的那个。

mark mark

可以看到已经停止finish了。

看到有几个project,spider

curl http://localhost:6800/listprojects.json

查看有几个spider

curl http://localhost:6800/listspiders.json?project=ArticleSpider

job是另一个概念,查看jobs

一个爬虫运行多次是多个job

curl http://localhost:6800/listjobs.json?project=ArticleSpider | python -m json.tool
mark
上一篇下一篇

猜你喜欢

热点阅读