Python 单线程与多线程批量下载的比较

这篇博客介绍了作者在学习Python爬虫时进行的一个实验,对比了使用单线程和多线程下载同一个URL列表的效率。通过代码展示,作者发现多线程下载相比单线程大约快了0.6秒,验证了多线程在下载任务中的优势。不过,由于环境中缺少threadpool模块,作者未能尝试线程池进行对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前刚学习了Python,想要自己试试爬虫下载,就看了《Python核心编程》这本书,和综合了网上很多的爬虫下载的代码,所以自己来试试。BTW:我用的是python3.6.


这是单线程下载30个url:

from urllib.request import urlretrieve
import time
import random
start=time.time()
f=open('E:\Python\py\web\hh.txt','r')#打开存放URL的文件
a=f.readlines()
f.close()
for i in a:
    b=random.randint(0,30)
    urlretrieve(i,'%d.png'%b) 
end=time.time()
print(end-start)

输出时间是:4.2432427406311035


同样的url文件,我用多线程和队列来实现:

from urllib.request import urlretrieve
import queue  
import threading   
import random
import time
class download(threading.Thread):  
    def __init__(self,que):  
        threading.Thread.__init__(self)  
        self.que=que  
    def run(self):  
        while True:  
&n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值