zoukankan      html  css  js  c++  java
  • python使用urllib模块开发的多线程豆瓣小站mp3下载器


    #! /usr/bin/python2.7
    # -- coding:utf-8 --
    import os, urllib,urllib2, thread,threading
    import re
    #匹配音乐url
    reg=re.compile('{"name":"(.+?)".+?"rawUrl":"(.+?)",.+?}', re.I)

    class downloader(threading.Thread):
            def __init__(self, url, name):
                    threading.Thread.__init__(self)
                    self.url=url
                    self.name=name
            def run(self):
                    print 'downloading from %s' % self.url
                    urllib.urlretrieve(self.url, self.name)
    threads=[]
    #多线程下载文件
    def main(url):
            response=urllib.urlopen(url)
            text=response.read()
            groups=re.finditer(reg, text)
            for g in groups:
                    name=g.group(1).strip() + ".mp3"
                    path=g.group(2).replace('\', '')
                    t=downloader(path, name)
                    threads.append(t)
                    t.start()
                                                                                                                                                         
    if __name__ == '__main__':
            main("http://site.douban.com/huazhou/")
            for t in threads:
                    t.join()

  • 相关阅读:
    Go_海量用户即时通讯系统
    Golang redis学习指南
    Golang 操作_Redis
    十七、Redis
    十六、网络编程-tcp socket编程
    十五、反射
    十四、goroutine(协程)和channel(管道)
    Jmeter笔记(9)Jmeter 性能测试资源监控方法(本地与服务器)(转)
    Fiddler笔记(8)重装时清除已有证书及解决tunnel to 443问题
    Jmeter笔记(8)Jmeter与MySql连接
  • 原文地址:https://www.cnblogs.com/enet01/p/6560290.html
Copyright © 2011-2022 走看看