Python threading多线程断点下载文件的方法,pythonthreading,这是编橙之家一篇关于Py
Python threading多线程断点下载文件的方法,pythonthreading,这是编橙之家一篇关于Py
这是编橙之家一篇关于Python多线程下载文件方法的代码实例。文中应用到的python模块和方法有httplib、Python urllib2、Python threading多线程模块、python queue、sleep,这些方法或是模块的具体实现流程可以参考本站的相关文章介绍。这是作者用了一小时左右写出来的python抓取文件的代码,喜欢的朋友可以拿去改进下。例如断点续传文件、多线程队列下载文件,这样的功能也是很受欢迎的,只是代码不太好写,需要一定的知识面和思路。
代码中没有太多的注释,感觉大家知道这些python方法的话应该都明白我的思路。
(以上多线程演示图片仅供参考!)
Python多线程下载文件的方法参考如下代码段:
import httplibimport urllib2import timefrom threading import Threadfrom Queue import Queuefrom time import sleep#以上为需要用到的模块和方法proxy = 'your proxy';opener = urllib2.build_opener( urllib2.ProxyHandler({'http':proxy}) )urllib2.install_opener( opener )ids = {};for i in range(1,110):try:listUrl = "http://www.someweb.net/sort/list_8_%d.shtml" % (i);print listUrl;page = urllib2.urlopen(listUrl).read();speUrl = "http://www.someweb.net/soft/";speUrlLen = len(speUrl);idx = page.find(speUrl,0);while idx!=-1:dotIdx = page.find(".",idx + speUrlLen);if dotIdx != -1:id = page[idx + speUrlLen:dotIdx];ids[id] = 1;idx = page.find("http://www.someweb.net/soft/",idx + speUrlLen);except:pass;#www.iplaypy.comq = Queue()NUM = 5failedId = [];def do_somthing_using(id):try:url = "http://www.someweb.net/download.php?softid=%s&type=dx" % (id);h2 = httplib.HTTPConnection("your proxy", "you port");h2.request("HEAD", url);resp = h2.getresponse();header = resp.getheaders();location = header[3][1];sContent = urllib2.urlopen(location).read();savePath = "C:\\someweb\\%s.rar" % (id);file=open(savePath,'wb');file.write(sContent);file.close();print savePath + " saved";except:pass;def working(): while True: arguments = q.get() do_somthing_using(arguments) sleep(1) q.task_done()for i in range(NUM): t = Thread(target=working) t.setDaemon(True) t.start()for id in ids: q.put(id)q.join()
感觉这个Python多线程下载文件的方法的方法还能再精简一点,如果有哪位python大牛可以指教一二非常感谢。
编橙之家文章,
相关内容
- python3.2 数据存储pickle模块的使用方法详解,python3.2pi
- 用Python为Vim编写的小插件源码分享,pythonvim编写源码
- 如何让django接入新浪微博OAuth的方法,djangooauth,本篇p
- web.py页面执行计时,Python装饰器实现方法,web.pypython
- Python替换字符串空格的处理方法,python字符串,python如何
- 用python计算1到100的和源码详解,python100源码详解,用p
- 调用Bing桌面更换为本地桌面的python方法,bingpython,这是
- Python编写的俄罗斯方块游戏案例源码详解,PYQT4,pyth
- python采集文章中图片的方法源码,,这是收集的一篇关于
- Python tar、zip压缩文件操作方法,pythontar,python语言源码
评论关闭