python - 在没有webui情况下,如何使用pyspider调试爬虫?

查看:109
本文介绍了python - 在没有webui情况下,如何使用pyspider调试爬虫?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我们的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才能生效。

这篇关于python - 在没有webui情况下,如何使用pyspider调试爬虫?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆