在scrapyd部署爬虫

本文介绍了Scrapy爬虫项目的部署方法。部署需用到scrapyd和scrapy client,前者是运行spider的service,可通过json控制spider;后者能将scrapy项目打包发送到scrapyd。文中详细说明了scrapyd和scrapy client的安装、配置及使用步骤,帮助完成项目部署与运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一简介
别人的爬虫部署文章
部署爬虫的时候需要scrapyd和scrapy client,scrapy client允许我们把我们的scrapy打包发送到scrapyd里面。
scrapyd是一个用来运行spider的service,可以通过scrapyd来部署爬虫项目,并且通过json控制spider。
二、service
首先要在开发scrapy项目的虚拟环境里安装一个scrapyd.

pip install scrapyd

安装成功会在当前虚拟环境的script目录下安装一个scrapyd.exe文件,然后再虚拟环境输入scrapyd,它就会运行起来了,然后会在当前目录下生成一个dbs文件夹。
服务器地址http://127.0.0.1:6800,进入jobs就可以看到内容。
三、client
在命令行输入 pip install scrapyd-client
不用进入虚拟环境来安装。安装后会放一个scrapyd-deploy文件到当前python的script下,
安装好之后cd 到spider项目的目录之下,找到scrapy项目里面的scrapy.cfg文件,找到:

[deploy]
#url = http://localhost:6800/
project = NgaSpider

打开这个url。deploy里面可以命名,[deploy:wdh]

在用虚拟环境安装一遍scrapyd-client,然后就会拷贝一个scrapyd-deploy在当前虚拟环境的script下,在linux中可以直接运行scrapyd-deploy,但是win中不行,因为没有后缀。
在同目录下新建一个同名的.bat后缀的文件,在里面添加;
@echo off

“E:\Envs\ngaSpider\Scripts\python.exe” “E:\Envs\ngaSpider\Scripts\scrapyd-deploy” %1 %2 %3 %4 %5 %6 %7 %8 %9

然后保存
然后在虚拟环境下运行scrapyd-deploy就可以用了

输入scrapyd-deplo -l会出现[deploy:wdh]这里的名字和url,同时注意要在工程项目的根目录cmd能运行scrapy list 命令,如果不能的话就在spider项目中的settings中加入:

import sys
BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'NgaSpider'))

scrapy list 和scrapyd-deploy都要在工程项目的根目录下cmd,就是在和包含scrapy.cfg文件同级的目录。
然后在启动了scrapyd服务器的同时在根目录下运行 :

scrapyd-deploy wdh -p NgaSpider  # scrapyd-deploy deploy后面的名字 -p [deploy]后面的project的值

然后再在虚拟环境中的根目录下把项目的spider打包发送到服务器

curl http://127.0.0.1:6800/daemonstatus.json

运行某一个项目下的spider

curl http://127.0.0.1:6800/schedule.json -d project=NgaSpider -d spider=douyu

会返回:

{"node_name": "DESKTOP-3UEPD36", "status": "ok", "jobid": "2bd490de38bd11e9b4a9e0db55c7cbe9"}

这个id很重要,要记住
此时访问http://127.0.0.1:6800/jobs就会看到我们的spider运行了。可以查看log

Scrapyd是一个基于Twisted的Python爬虫部署工具,它可以帮助我们方便地管理和部署自己编写的爬虫程序。 以下是使用Scrapyd部署爬虫的步骤: 1. 安装Scrapyd 可以使用pip命令安装Scrapyd: ``` pip install scrapyd ``` 2. 创建Scrapy项目 在命令行窗口中输入以下命令,创建Scrapy项目: ``` scrapy startproject myproject ``` 其中myproject是项目名称。 3. 创建爬虫程序 在myproject/spiders目录下创建一个爬虫程序,例如: ```python import scrapy class MySpider(scrapy.Spider): name = 'myspider' allowed_domains = ['example.com'] start_urls = ['http://www.example.com'] def parse(self, response): # 爬虫解析方法 pass ``` 这里创建了一个名为myspider的爬虫程序,它从http://www.example.com开始爬取数据。 4. 配置Scrapy项目 修改myproject/settings.py文件,添加如下配置: ```python BOT_NAME = 'myproject' SPIDER_MODULES = ['myproject.spiders'] NEWSPIDER_MODULE = 'myproject.spiders' ITEM_PIPELINES = { 'scrapy.pipelines.images.ImagesPipeline': 1 } IMAGES_STORE = 'images' ``` 这里添加了一个名为ImagesPipeline的管道,用于下载图片,并将图片保存到images目录下。 5. 打包Scrapy项目 在命令行窗口中进入Scrapy项目的根目录,使用以下命令打包Scrapy项目: ``` python setup.py sdist ``` 这时会在Scrapy项目的根目录下生成一个dist目录,其中包含了一个压缩包,例如myproject-0.1.tar.gz。 6. 部署Scrapy项目 在命令行窗口中进入Scrapy项目的根目录,使用以下命令将Scrapy项目部署Scrapyd服务器上: ``` scrapyd-deploy <target> -p <project> --version <version> ``` 其中,: - `<target>`是Scrapyd服务器的名称,例如default; - `<project>`是Scrapy项目的名称,例如myproject; - `<version>`是Scrapy项目的版本号,例如0.1。 执行此命令后,Scrapyd会自动将Scrapy项目部署Scrapyd服务器上,并生成一个新的项目版本。 7. 启动ScrapydScrapyd服务器上启动Scrapyd服务: ``` scrapyd ``` 这时可以在浏览器中访问http://localhost:6800/,查看Scrapyd服务是否正常运行。 8. 运行爬虫 使用以下命令在Scrapyd服务器上运行爬虫程序: ``` curl http://localhost:6800/schedule.json -d project=myproject -d spider=myspider ``` 其中,myproject和myspider分别为你的项目名称和爬虫程序名称。 运行此命令后,Scrapyd会在Scrapyd服务器上启动myspider爬虫程序,并开始爬取数据。在浏览器中访问http://localhost:6800/jobs,可以查看爬虫程序的运行状态。 至此,使用Scrapyd部署爬虫的步骤已经完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值