scrapyd 常用部署命令 & 远程监控 & 爬虫脚本

本文详细介绍了Scrapy爬虫的部署流程,包括使用scrapyd进行部署、运行及停止的方法,配置允许外部访问的步骤,以及通过URL指令进行远程监控的具体操作。此外,还提供了循环任务和实时时间打印的实用脚本。

一. 部署&运行

deploy: 部署scrapy爬虫程序

# scrapyd-deploy  部署服务器名 -p 项目名称
scrapyd-deploy  ubuntu -p douyu

run : 运行

#curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name
curl http://127.0.0.1:6800/schedule.json -d project=douyu -d spider=dy

stop: 停止

#curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid
curl http://127.0.0.1:6800/cancel.json -d project=douyu -d job=$1

 

二. 允许外部访问配置

定位配置文件: default_scrapyd.conf

find /home/wg -name default_scrapyd.conf

cd /home/wg/scrapy_env/lib/python3.6/site-packages/scrapyd

允许外部访问:

vim default_scrapyd.conf

bind_address = 0.0.0.0

三. 远程监控-url指令:

1、获取状态

http://127.0.0.1:6800/daemonstatus.json

2、获取项目列表

http://127.0.0.1:6800/listprojects.json

3、获取项目下已发布的爬虫列表

http://127.0.0.1:6800/listspiders.json?project=myproject

4、获取项目下已发布的爬虫版本列表

http://127.0.0.1:6800/listversions.json?project=myproject

5、获取爬虫运行状态

http://127.0.0.1:6800/listjobs.json?project=myproject

 6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫)

http://127.0.0.1:6800/schedule.json  (post方式,data={"project":myproject,"spider":myspider})

7、删除某一版本爬虫

http://127.0.0.1:6800/delversion.json

(post方式,data={"project":myproject,"version":myversion})

8、删除某一工程,包括该工程下的各版本爬虫

http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})

 

四. 常用脚本

循环任务:

while true
do
    curl http://127.0.0.1:6800/schedule.json -d project=FXH -d spider=five_sec_info
    sleep 10
done

 

实时时间打印:

echo "$(date +%Y-%m-%d:%H:%M.%S), xx-spider定时启动--"

 

 

### 使用Python项目管理工具部署爬虫的最佳实践 #### 一、选择适合的部署工具 对于Scrapy这类框架构建的爬虫项目,Gerapy是一个非常优秀的管理和部署平台[^1]。其提供了图形化界面用于创建、编辑以及监控多个Scrapy项目。 #### 二、配置环境变量与依赖项 确保目标服务器上已安装必要的软件包和服务,比如Python解释器版本匹配、pip等开发工具齐全;同时也要注意处理好虚拟环境中可能存在的第三方库冲突问题。 #### 三、编写`setup.py`文件 为了简化发布流程,在源码根目录下添加一个标准格式化的`setup.py`脚本,定义好package name, version等元数据信息: ```python from setuptools import setup, find_packages setup( name='my_spider_project', version='0.1.0', packages=find_packages(), install_requires=[ 'scrapy>=2.7,<3.0' ], ) ``` #### 四、集成持续集成/持续交付(CI/CD)管道 借助GitLab CI或GitHub Actions等功能强大的CI服务,每当有新的提交推送到仓库时自动触发测试并打包上传至PyPI或其他私有的index server。 五、运用Scrapyd进行远程执行 Scrapyd作为官方推荐的服务守护进程之一,允许用户通过HTTP API启动停止作业实例,并支持多节点集群扩展能力[^3]。下面给出一段简单的命令行调用样例: ```bash curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider ``` 六、定期备份数据库记录日志 考虑到长时间运行过程中可能会遇到意外情况造成的数据丢失风险,建议定时导出重要资料存档保存,便于后期审计追踪错误源头。 七、设置合理的并发数和下载延迟参数 适当调整CONCURRENT_REQUESTS_PER_DOMAIN 和DOWNLOAD_DELAY这两个核心选项值可以在不影响网站正常运作的前提下尽可能提高抓取速度[^2]。 八、采用分布式架构分担压力 当单机性能达到瓶颈之后考虑引入Celery+RabbitMQ/RQ这样的消息队列组合方案实现任务异步调度机制,从而有效缓解高负载带来的挑战。 九、遵循robots.txt协议尊重版权方意愿 最后但同样重要的就是务必遵守各站点发布的访问指南,避免因违规操作而被封禁IP地址甚至面临法律诉讼的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值