在没有webui情况下,如何使用pyspider调试爬虫?
我们的pyspider部署在远程服务器上,只能通过shell远程登录文本界面,webui没法访问。
请问如何在远程服务器上调试爬虫?例如部署爬虫代码,启动project,停止project等。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我们的pyspider部署在远程服务器上,只能通过shell远程登录文本界面,webui没法访问。
请问如何在远程服务器上调试爬虫?例如部署爬虫代码,启动project,停止project等。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
自己稍微研究了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做一个代理。