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
magic3584
V2EX  ›  Python

Python 怎么下载磁力/电驴/迅雷的资源

  •  
  •   magic3584 · 2017-08-19 18:00:36 +08:00 · 15310 次点击
    这是一个创建于 2440 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚接触 python 的菜鸟一枚,想写个爬虫批量下载电影,但是用下载图片的方法没办法下载电影了。 求指点~~~ 另外多线程的话应该怎么搞。。。

            for movie in movies:
                print(movie.title)
                resource = urllib.request.urlopen(movie.downloadUrl)
                movieData = open(movie.title, 'wb')
                movieData.write(resource.read())
                movieData.close()
    
    37 条回复    2017-08-21 19:37:41 +08:00
    dzxx36gyy
        1
    dzxx36gyy  
       2017-08-19 18:17:49 +08:00 via Android   ❤️ 2
    我觉得你后台跑个 aria2 把链接用 rpc 添加任务得了……
    UnisandK
        2
    UnisandK  
       2017-08-19 18:19:07 +08:00   ❤️ 3
    你这么个问法我觉得磁力和电驴你要自己写完实现是不大可能了。。直接调用其他下载工具吧
    expy
        3
    expy  
       2017-08-19 18:26:40 +08:00   ❤️ 1
    有多大硬盘存?那些爬虫站一般也就存个链接吧。
    15015613
        4
    15015613  
       2017-08-19 18:28:33 +08:00 via Android   ❤️ 1
    磁力链的话好办,直接调用 transmission (或者 arias)下载就可以了。
    电驴,不知道,你可以看看 amule 什么的客户端有没有什么 API
    迅雷,喵喵喵~~~

    另外,多线程,一头雾水。
    本来便是 p2p,没有固定的资源,不存在多不多线程的问题。
    chinvo
        5
    chinvo  
       2017-08-19 18:29:21 +08:00   ❤️ 1
    磁链和电驴都能直接 aria2,迅雷的链接需要解码成 http/ftp 链接再交给 aria2

    aria 有 JSONRPC ( HTTP ) 接口
    chinvo
        6
    chinvo  
       2017-08-19 18:30:46 +08:00   ❤️ 1
    @chinvo #5 搞错了,aria2 不支持 ed2k,ed2k 你得试试能不能用 amule 之类的
    magic3584
        7
    magic3584  
    OP
       2017-08-19 21:44:44 +08:00
    @chinvo @dzxx36gyy aria2 没弄过,我去找找,thx ~
    magic3584
        8
    magic3584  
    OP
       2017-08-19 21:45:23 +08:00
    @UnisandK #2,哈哈,这不是以为 python 是万能的。。。
    magic3584
        9
    magic3584  
    OP
       2017-08-19 21:46:23 +08:00
    @expy #3 下一个网页里的电影就够了。。。SSD 太贵了。。。
    magic3584
        10
    magic3584  
    OP
       2017-08-19 21:47:11 +08:00
    @15015613 #4 vely 详细,thx,我琢磨琢磨
    chinvo
        11
    chinvo  
       2017-08-19 22:42:23 +08:00   ❤️ 1
    @magic3584 #8 如果你愿意自己实现,任何一门语言都能接入任何一个 p2p 网络,反正 protocol 都是开放标准。
    UnisandK
        12
    UnisandK  
       2017-08-19 23:29:22 +08:00   ❤️ 2
    @magic3584 是这样,磁力( BT )和电驴是两种不同的 P2P 下载协议,不像 HTTP 协议那样你一句就能拉下来,你得用 Python 分别实现两种协议的客户端才行

    看你帖子的内容感觉对俩协议都一无所知,感觉你真写不出来两个完整的客户端实现

    Python 可以万能,但你不是万能的啊老铁
    bucky
        13
    bucky  
       2017-08-20 00:01:42 +08:00   ❤️ 1
    要不是大家提醒你差点写出个下载软件来
    aaronzjw
        14
    aaronzjw  
       2017-08-20 00:07:30 +08:00   ❤️ 1
    如果不是一些奇怪的视频,就用 you-get 下载吧
    NoAnyLove
        15
    NoAnyLove  
       2017-08-20 00:10:06 +08:00   ❤️ 1
    这种时候,你只需要遵循 KISS 原则就好了,有现成的东西当然就是拿来用咯
    FanWall
        16
    FanWall  
       2017-08-20 00:10:08 +08:00 via Android   ❤️ 1
    很多 sdk 的
    expy
        17
    expy  
       2017-08-20 00:18:40 +08:00   ❤️ 1
    @magic3584 BT 开源实现比较多,比如 libtorrent 库 http://www.libtorrent.org/python_binding.html
    emule 只能用客服端了,emule/amule/MLDonkey.
    迅雷死链的话只能用它家离线。
    20015jjw
        18
    20015jjw  
       2017-08-20 00:36:52 +08:00 via Android   ❤️ 1
    我进来前以为是个大牛...
    magic3584
        19
    magic3584  
    OP
       2017-08-20 08:01:07 +08:00
    @chinvo #11 我是很愿意,可惜没能力。。。
    magic3584
        20
    magic3584  
    OP
       2017-08-20 08:01:50 +08:00
    @UnisandK #12 尽管有点扎心,但是不会的才要学
    magic3584
        21
    magic3584  
    OP
       2017-08-20 08:03:40 +08:00
    @20015jjw vely sorry,让您失望了,sigh
    OpenJerry
        22
    OpenJerry  
       2017-08-20 09:49:48 +08:00   ❤️ 1
    我下载图片都是直接 os.system('aria2c xxx') 是不是太弱了
    Loyalsoldier
        23
    Loyalsoldier  
       2017-08-20 10:56:38 +08:00   ❤️ 1
    是 very。
    而且没有 very sorry 的说法,只有 really sorry
    Jackeriss
        24
    Jackeriss  
       2017-08-20 11:21:03 +08:00 via iPhone   ❤️ 1
    迅雷有添加任务的 API
    msg7086
        25
    msg7086  
       2017-08-20 11:50:03 +08:00   ❤️ 1
    @Loyalsoldier vely 可能是印度人的口音……
    sola97
        26
    sola97  
       2017-08-20 13:20:27 +08:00   ❤️ 1
    下载图片不如 wget -i
    magic3584
        27
    magic3584  
    OP
       2017-08-20 14:14:10 +08:00
    @OpenJerry 你是认真的?
    magic3584
        28
    magic3584  
    OP
       2017-08-20 14:15:05 +08:00
    @Loyalsoldier @msg7086 You get it!
    magic3584
        29
    magic3584  
    OP
       2017-08-20 14:20:25 +08:00
    @Jackeriss #24 python 可以用吗?没见官方给出 demo
    magic3584
        30
    magic3584  
    OP
       2017-08-20 14:27:33 +08:00
    @sola97 #26 很强大。thx ~
    yangjiegang
        31
    yangjiegang  
       2017-08-20 16:24:18 +08:00
    还是调用第三方软件吧省心
    Jackeriss
        32
    Jackeriss  
       2017-08-20 20:54:41 +08:00
    @magic3584 可以把添加任务的 VBS 代码写入一个 .vbs 文件,然后用 Python 执行这个文件。
    magic3584
        33
    magic3584  
    OP
       2017-08-20 21:32:39 +08:00
    @Jackeriss #32 vbs? 额。。。新东西。。。
    popbones
        34
    popbones  
       2017-08-21 05:25:57 +08:00
    参考一下 Sonarr 的设计吧
    popbones
        35
    popbones  
       2017-08-21 05:33:30 +08:00   ❤️ 1
    非要 Python 的话,去看一下 Sick Beard
    magic3584
        36
    magic3584  
    OP
       2017-08-21 09:18:57 +08:00
    @popbones #35 thx,我试试
    magic3584
        37
    magic3584  
    OP
       2017-08-21 19:37:41 +08:00
    @dzxx36gyy 大佬能详细说下吗?试了 1 天没搞定。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1017 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:46 · PVG 03:46 · LAX 12:46 · JFK 15:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.