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

发布于 2022-09-03 12:19:16 字数 106 浏览 11 评论 0

我们的pyspider部署在远程服务器上,只能通过shell远程登录文本界面,webui没法访问。
请问如何在远程服务器上调试爬虫?例如部署爬虫代码,启动project,停止project等。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

恰似旧人归 2022-09-10 12:19:16

自己稍微研究了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才能生效。

⊕婉儿 2022-09-10 12:19:16

建议你试试这样的方式,利用fabric来做远程命令客户端,利用supervisord来管理你的爬虫进程,这样就可以了,嗯嗯

浅笑轻吟梦一曲 2022-09-10 12:19:16

你可以在本地创建一个脚本文件 sample.py
然后使用 pyspider one -i sample.py 进行调试

http://docs.pyspider.org/en/l...

你是年少的欢喜 2022-09-10 12:19:16

用nginx做一个代理。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文