扫码关注官方订阅号
我们的pyspider部署在远程服务器上,只能通过shell远程登录文本界面,webui没法访问。请问如何在远程服务器上调试爬虫?例如部署爬虫代码,启动project,停止project等。
自己稍微研究了pyspider源码,成功试验了一个方案。方案背景如下:1)首先,在webui里编写代码后点击保存时会将代码按照一定的格式写入数据库;2)把工程状态改成RUNNING时会更新数据库中status字段;3)最后点击“run”按钮时浏览器会发送一个run的post请求到webui/index.py中的runtask()函数,然后爬虫便开始执行。基于以上背景,在不能通过webui开发的情况下可以通过以下方式启动爬虫代码:1)将开发好的爬虫代码按照pyspider的要求的格式写入数据库(这里用的是mongodb,使用pymongo操作数据库);2)通过代码将爬虫状态更新为RUNNING或DEBUG;3)使用requests库模拟发送一个run按钮的post请求。需要注意的是,在步骤2中更新状态后,正在运行的pyspider不一定会立马感知到状态变化,默认每隔一段时间刷新一次状态。所以要在状态刷新后执行步骤3才能生效。
建议你试试这样的方式,利用fabric来做远程命令客户端,利用supervisord来管理你的爬虫进程,这样就可以了,嗯嗯
你可以在本地创建一个脚本文件 sample.py然后使用 pyspider one -i sample.py 进行调试
pyspider one -i sample.py
http://docs.pyspider.org/en/l...
用nginx做一个代理。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
自己稍微研究了pyspider源码,成功试验了一个方案。方案背景如下:
1)首先,在webui里编写代码后点击保存时会将代码按照一定的格式写入数据库;
2)把工程状态改成RUNNING时会更新数据库中status字段;
3)最后点击“run”按钮时浏览器会发送一个run的post请求到webui/index.py中的runtask()函数,然后爬虫便开始执行。
基于以上背景,在不能通过webui开发的情况下可以通过以下方式启动爬虫代码:
1)将开发好的爬虫代码按照pyspider的要求的格式写入数据库(这里用的是mongodb,使用pymongo操作数据库);
2)通过代码将爬虫状态更新为RUNNING或DEBUG;
3)使用requests库模拟发送一个run按钮的post请求。
需要注意的是,在步骤2中更新状态后,正在运行的pyspider不一定会立马感知到状态变化,默认每隔一段时间刷新一次状态。所以要在状态刷新后执行步骤3才能生效。
建议你试试这样的方式,利用fabric来做远程命令客户端,利用supervisord来管理你的爬虫进程,这样就可以了,嗯嗯
你可以在本地创建一个脚本文件 sample.py
然后使用
pyspider one -i sample.py进行调试http://docs.pyspider.org/en/l...
用nginx做一个代理。