美文网首页爬虫专题Python文集Pythoner集中营
2018.2最新-搜索引擎搭建-scrapyd部署我们的爬虫项目

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

作者: 天涯明月笙 | 来源:发表于2018-02-17 20:59 被阅读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

相关文章

网友评论

  • 养边牧的郭郭郭:scrapy 在虚拟环境里, 那对应的爬虫项目 就是在那个环境吗?
    你有没有遇到No module named 'execjs' 这样的错误,
    我虚拟环境里面有这个模块,退出虚拟环境 是没有这个模块的
    养边牧的郭郭郭:你服务器什么配置的啊。 我一个博客弄上午内存就上去了
    天涯明月笙:@养边牧的郭郭郭 对,scrapy和爬虫项目在同一个虚拟环境下
  • 销瑾:6666 q请问如果我需要将爬取的图片进行分类下载。网站如谷歌图片等直接使用关键词搜索得到对应的URL就可以达到分类下载的目的。但是如果要求有识别过程,如果我爬取的是知乎上的图片,这类图片是没有带标签的,那么我是不是可以去把这类图片爬取到内存中,然后直接调用imagenet对应的caffenet模型和相关数据文件去识别这些图片,然后再分类下载到本地文件夹中。
    具体做法:我可以爬取两种不同类型的网站,一种是谷歌图片和百度图片,另一种是知乎和简书上的图片,针对这4个网站设计不同的算法,然后再串起来运行。总共爬取4个网站的图片分类保存到本地,这种设计思路可以吗?
  • 9c0ddf06559c:老铁方便加个微信或者qq吗,我也买了这门课程,现在爬取知乎遇到了点问题
    天涯明月笙:@Meet相识_bfa5 欢迎加入有趣的python,群聊号码:619417153
  • 清纯浪人:6666666
    天涯明月笙:@清纯浪人 😃

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

本文链接:https://www.haomeiwen.com/subject/wckvtftx.html