李亚涛:python多线程爬虫与单线程爬虫时间对比

      李亚涛:python多线程爬虫与单线程爬虫时间对比已关闭评论

今天给大家分享一下python多线程爬虫与单线程爬虫时间对比

python多线程的运行效率比单线程要快的多。

我就简单举例,假如有50个url然后要获取源代码,分别用单线程和多线程,看一直运行结束后,各用多长时间。

代码如下:

# coding:utf8
#python多线程爬虫
import requests,time
from multiprocessing.dummy import Pool as ThreadPool
def get_html(url):
    html=requests.get(url).content

urls=[]
for id in  range(1,51):
    url="https://you.ctrip.com/asks/p%s"%id
    urls.append(url)

time1=time.time()
for url in urls:
    print url
    get_html(url)
time2=time.time()

totalTime=time2-time1
print '单线程消耗时间为:',totalTime

pool=ThreadPool(4)
time3=time.time()  #开始时间
result=pool.map(get_html,urls)
pool.close()
pool.join()
time4=time.time()#结束时间
totalTime=time4-time3
print '多线程消耗时间为:',totalTime

运行截图如下:

大家可以看到,单线程消耗时间为:31.2030000687
多线程消耗时间为:9.65499997139

多线程用时明显少了很多。

好了,今天就简单分享到这里!

李亚涛简介-一个没有才华的python程序员,关注我学习更多python知识