我用python写了个爬虫脚本,怎么通过web 方式控制开始,暂停呢?
1. 你可以通过发 signal 嘛
http://docs.python.org/2/library/sign...
2. 通过环境变量,通过 python 修改环境变量 ,然后在爬虫中判断标识
3. 通过 subprocess 调用脚本,关闭时杀掉进程
4. 用 scrapy 改写下,似乎是支持通过 web 去控制的。
http://doc.scrapy.org/en/latest/topic...
我之前自己尝试过写过一个框架,其实也就是通过python的os.popen执行shell
在每个需要web控制脚本启动的机器上都写一个tornado的API服务,然后有一个前台页面,API可以查询指定脚本(实质是得到脚本名的参数,然后python执行shell命令——ps aux | grep 脚本名称)然后读取结果返回前台页面,然后会得到相应的进程id,再通过传递进程ID参数去执行kill操作,也可以传递命令参数,然后tornado处理。
这样做很偷懒,但是安全性不好。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答487 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
楼主的问题可以分为两部分。一是找到一种适合的 IPC(进程间通信)方式来实现控制脚本的目的,二是找一个合适的web framework来写一个好用的web UI。
一的话,IPC有很多种方式,楼上的signal/env/process都是不错的方式。我也很推荐socket,毕竟这也是非常常见的方式。library方面,我推荐
Twisted
或者ZeroMQ
。前者提供了多种IPC方式,不过学起来略有点慢。后者提供了基于socket的IPC方式,非常灵活。二的话,
Django
/bottle
/web.py
等等等等,随便抓一个来用就是了。