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

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

阿神
阿神

闭关修行中......

全部回覆(5)
洪涛

樓主的問題可以分成兩個部分。一是找到適合的 IPC(進程間通訊)方式來實現控制腳本的目的,二是找一個合適的web framework來寫一個好用的web UI。

一的話,IPC有很多種方式,樓上的signal/env/process都是不錯的方式。我也很推薦socket,畢竟這也是非常常見的方式。 library方面,我推薦TwistedZeroMQ。前者提供了多種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的某個標記,爬蟲一輪一輪的跑,每一次都讀取這個變數即可。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板