webpy图片下载守护程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zzWinD
V2EX    Python

webpy图片下载守护程序

  •  
  •   zzWinD 2012-07-17 10:18:21 +08:00 6345 次点击
    这是一个创建于 4850 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我要实现一个图片下载程序,思路是这样的:
    webpy
    前台输入图片地址保存到数据库,后台有一个守护程序。发现有新的未下载的图片,马上下载。
    现在想问的是 webpy 框架 自身可以实现这个守护程序吗?

    说简明一点:webpy启动的时候,下载图片的程序也运行。
    25 条回复    1970-01-01 08:00:00 +08:00
    sykp241095
        1
    sykp241095  
       2012-07-17 10:35:18 +08:00
    可以,但没有这么做的
    zzWinD
        2
    zzWinD  
    OP
       2012-07-17 10:46:37 +08:00
    @sykp241095 谢谢你的回复,
    请问什么方法才更适合我的需求?
    sykp241095
        3
    sykp241095  
       2012-07-17 10:48:45 +08:00
    You need a standalone consumer.
    judezhan
        4
    judezhan  
       2012-07-17 11:55:53 +08:00
    ...我实在是没明白你的意思。一个cronjob+shell脚本就搞定了吧?还是我曲解了你的意思?
    shellex
        5
    shellex  
       2012-07-17 12:25:20 +08:00
    @zzWinD 的意思是需要一个web介面提交下载地址,让呼叫一个下载程序去下载。

    如果是我的话,我也会用一个独立程序来处理下载的事宜。你可以让这个下载程序访问数据库获得需要下载的任务,也可以让那个web暴露一个API提供任务给下载程序。
    zzWinD
        6
    zzWinD  
    OP
       2012-07-17 14:48:25 +08:00
    @judezhan 我比较喜欢收集网上的图片,但是每次看到另存为嫌麻烦。就像做个站点。把图片的地址提交上去,让服务器去下载好。有种随时随地保存图片的意思。。不好意思。。文采不好。


    @shellex 嗯,我想也是独立的程序去下载。有点类似windows C#里面的服务,就默默的运行在后端。有新图片了,去下载。我想webpy 有没有这种daemon 的功能。
    messense
        7
    messense  
       2012-07-17 15:31:55 +08:00
    也许需要用 python-rq 或者 celery 这样的Task Queue?
    shellex
        8
    shellex  
       2012-07-17 16:04:24 +08:00
    @zzWinD 这和webpy无关。web部分也不应该处理这种任务。如果是Linux配合cron或者自己做个daemon就可以了。
    arzon
        9
    arzon  
       2012-07-17 16:11:06 +08:00
    @zzWinD 典型的生产者-消费者的需求. 可以用线程+队列解决.
    随应用服务器初始化一个消费者线程和生产队列. 提交地址时将地址放入队列. 消费者线程依次从队列中取出地址进行下载保存.
    jamiesun
        10
    jamiesun  
       2012-07-17 23:26:10 +08:00
    单独启动一个守护进程轮训就可以了

    参考代码 http://www.talkincode.org/code/view/060bd1270e094713b390fd0bea8f19b5
    zzWinD
        11
    zzWinD  
    OP
       2012-07-18 10:04:28 +08:00
    @messense 没有接触过TaskQueue队列 找资料看看。

    @shellex 嗯,cron 可能不实时,也是一种解决方法。

    @arzon 正在看 生产者-消费者

    @jamiesun 需要翻墙么? 翻不翻都打不开。
    Archangel_SDY
        12
    Archangel_SDY  
       2012-07-18 11:51:26 +08:00
    做过一个类似的, 前台用js bookmarklet提交请求, 后台用celery处理下载, 队列用rabbitmq.
    webpy的话用在处理前台请求和管理页比较合适.
    lanbing
        13
    lanbing  
       2012-07-18 15:10:09 +08:00
    ilessd
        14
    ilessd  
       2012-07-18 15:14:11 +08:00
    ipconfiger
        15
    ipconfiger  
       2012-07-18 16:10:27 +08:00
    $sudo pip install celery

    一切没烦恼
    cyberscorpio
        16
    cyberscorpio  
       2012-07-18 20:40:48 +08:00
    一般来说,可能你得提交两个地址。除了图片的 URL 之外,还要 HTTP_REFERER,否则很多网站会返回 403...
    jamiesun
        17
    jamiesun  
       2012-07-19 22:17:19 +08:00
    shiweifu
        18
    shiweifu  
       2012-07-20 10:32:04 +08:00
    cronjob + Python + 一个kv(k是文件地址,v是保存的路径)
    bigzhu
        19
    bigzhu  
       2012-07-24 10:34:22 +08:00
    我做的 http://digzhu.com 其实有部分功能用到你说的这个.
    我这个站是用来推荐网站的. 输入 url,然后抓取站点截图.

    正好也是用 web.py 开发的. 确实得用另外的程序来抓.
    python 就判断下抓过没有,还有转换下图片大小等杂事.
    ivanlw
        20
    ivanlw  
       2012-09-22 18:47:47 +08:00
    @bigzhu 你这个好神奇啊……怎么输入URL自动抓的?用的啥……
    yuelang85
        21
    yuelang85  
       2012-09-22 18:52:26 +08:00
    跟 @judezhan 想法一样,觉得cron+shell就能搞定啊
    darklowly
        22
    darklowly  
       2012-09-22 19:56:06 +08:00
    直接创建一个后台线程就可以了。
    mckelvin
        23
    mckelvin  
       2012-09-22 20:04:12 +08:00
    如果LZ嫌cron麻烦的话可以tmux开一个panel直接写轮询呀
    clowwindy
        24
    clowwindy  
       2012-09-22 20:07:44 +08:00
    https://github.com/clowwindy/PyWebGet

    以前写的 Python 下载器,也用到了 web.py,供参考。
    xi4nyu
        25
    xi4nyu  
       2012-09-25 10:00:55 +08:00
    异步+队列.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5479 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 05:48 PVG 13:48 LAX 22:48 JFK 01:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86