python 多线程下载mp4_Python多线程下载文件的方法

本文实例讲述了Python多线程下载文件的方法。分享给大家供大家参考。具体实现方法如下:

import httplib

import urllib2

import time

from threading import Thread

from Queue import Queue

from 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;

q = Queue()

NUM = 5

failedId = [];

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实现提取谷歌音乐搜索结果的方法

本文实例讲述了Python实现提取谷歌音乐搜索结果的方法。分享给大家供大家参考。具体如下:Python的简单脚本,用于提取谷歌音乐搜索页面中的歌曲信

Python读写unicode文件的方法

本文实例讲述了Python读写unicode文件的方法。分享给大家供大家参考。具体实现方法如下:#coding=utf-8importosimportcodecsdefwritefile(fn,v_ls):f=codecs.open(fn,'wb','utf-

Python实现telnet服务器的方法

本文实例讲述了Python实现telnet服务器的方法。分享给大家供大家参考。具体实现方法如下:importthreadingclassmyThread(threading.Thread):def__init__(self,conn,add):thread

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值