首页 > 编程语言 > 详细

PYTHON_异步爬虫(一)

时间:2021-02-18 23:32:13      阅读:36      评论:0      收藏:0      [点我收藏+]

 

高性能异步爬虫     

目的:在爬虫中使用异步实现高性能的数据爬取操作

 

异步爬虫的方式:

-多线程,多进程(不建议):

好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作旧可以异步执行。

弊端:无法无限制的开启多线程或者多进程。

                                                    

-线程池、进程池(适当的使用):

好处:我们可以降低系统对进程或者线程创建和销毁频率,从而很好的降低系统的开销。

弊端:池中线程或进程的数量是有上限。

 

1、使用单线程串行方式执行

 1 import time
 2 #使用单线程串行方式执行
 3 
 4 def get_page(str):
 5     print("正在下载:",str)
 6     time.sleep(2)
 7     print("下载成功:",str)
 8 
 9 name_list=[xiaozi,aa,bb,cc]
10 
11 start_time=time.time()
12 
13 for i in range(len(name_list)):
14     get_page(name_list[i])
15 
16 end_time=time.time()
17 
18 print(%d second%(end_time-start_time))

执行结果如下:

技术分享图片

 

 2、使用线程池方式执行

 1 import time
 2 #导入线程池模块对应的类
 3 from multiprocessing.dummy import Pool
 4 #使用线程池方式执行
 5 start_time=time.time()
 6 def get_page(str):
 7     print("正在下载:",str)
 8     time.sleep(2)
 9     print("下载成功:",str)
10 
11 name_list=[xiaozi,aa,bb,cc]
12 
13 #实例化一个线程池对象
14 pool=Pool(4)
15 #将列表中每一个列表元素传递给get_page进行处理
16 pool.map(get_page,name_list)
17 
18 end_time=time.time()
19 print(end_time-start_time)

执行结果:

技术分享图片

 

 可以明显看出,使用线程池的方式大大提高执行效率

 

PYTHON_异步爬虫(一)

原文:https://www.cnblogs.com/industrial-fd-2019/p/14413156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!