python写了个爬虫脚本怎么通过web 方式控制开始暂停呢

我用python写了个爬虫脚本,怎么通过web 方式控制开始,暂停呢?

阅读 10.7k
5 个回答

楼主的问题可以分为两部分。一是找到一种适合的 IPC(进程间通信)方式来实现控制脚本的目的,二是找一个合适的web framework来写一个好用的web UI。

一的话,IPC有很多种方式,楼上的signal/env/process都是不错的方式。我也很推荐socket,毕竟这也是非常常见的方式。library方面,我推荐Twisted或者ZeroMQ。前者提供了多种IPC方式,不过学起来略有点慢。后者提供了基于socket的IPC方式,非常灵活。
二的话,Django/bottle/web.py等等等等,随便抓一个来用就是了。

新手上路,请多包涵

我之前自己尝试过写过一个框架,其实也就是通过python的os.popen执行shell
在每个需要web控制脚本启动的机器上都写一个tornado的API服务,然后有一个前台页面,API可以查询指定脚本(实质是得到脚本名的参数,然后python执行shell命令——ps aux | grep 脚本名称)然后读取结果返回前台页面,然后会得到相应的进程id,再通过传递进程ID参数去执行kill操作,也可以传递命令参数,然后tornado处理。

这样做很偷懒,但是安全性不好。

最偷懒的方法,写个cgi,cgi内容是执行一段bash脚本,cgi可以用perl python php写都行

比较推荐通过变量的方式控制,变量可以是爬虫内部的,也可以是文件或者db的某个标记,爬虫一轮一轮的跑,每一次都读取一下这个变量即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题