美文网首页爬虫专题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