python写了个爬虫脚本怎么通过web 方式控制开始暂停呢
阿神
阿神 2017-04-17 11:21:40
0
5
528

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

阿神
阿神

闭关修行中......

全部回复(5)
洪涛

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

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

左手右手慢动作

1. 你可以通过发 signal 嘛
http://docs.python.org/2/library/sign...
2. 通过环境变量,通过 python 修改环境变量 ,然后在爬虫中判断标识
3. 通过 subprocess 调用脚本,关闭时杀掉进程
4. 用 scrapy 改写下,似乎是支持通过 web 去控制的。
http://doc.scrapy.org/en/latest/topic...

Ty80

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

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

Peter_Zhu

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

左手右手慢动作

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板