16713720339 发表于 2023-1-12 19:55

python爬取网页图片时怎么多线程或多进程,加快速度

我爬取一个网站,里面的一些图片,网站是有规律的,标号加一就行了
但是每个网页有几张图片,写的python程序只能访问网页,获取多个图片地址,一张一张下载图片,感觉有些慢,
能不能使用多线程加快速度
比如访问网站的加载时间进行其他的保存,或者是说我获取到一个网页的所有图片地址了,能不能批量多线程保存

网站就放不出来了,网站是男人都懂得网站{:301_997:}

xiangmeier 发表于 2023-1-12 20:21

嘎嘎嘎嘎嘎,刚好学到这儿,用协程模块, asyncio,这个感觉刚开始比较难理解链接: https://pan.baidu.com/s/1YjWTm6fSG0FKLnEBcXbAug?pwd=wiz6

mainblog 发表于 2023-1-12 20:21

楼主可以看看这篇文章,算是最简单的方法了。https://www.mainblog.cn/282.html

Asra 发表于 2023-1-12 21:03

用协程异步吧,asyncio负责异步,aiohttp发送请求,aiofiles来操作文件的保存,全部操作全部改成异步的,就可以同时爬了。最近也才学过这,爬过一些电影,效率挺高的

刹那光华 发表于 2023-1-13 00:41

一个线程获取地址,保存到一个列表。其他多个线程获取到列表里的地址开始下载,下载完一次再次获取地址。获取地址需要线程锁,防止重复下载

alongzhenggang 发表于 2023-1-13 05:29

用idm直接拒绝访问{:301_971:}嗯

爱的人 发表于 2023-1-13 06:13

建议还是单线程吧。请求量太大了。别人的服务器压力顶不住的

adx123456 发表于 2023-1-13 08:13

用多进程(threading)或多线程(multiprocessing)模块

yang19950324 发表于 2023-1-13 09:26

从解决你的需求来说   使用 asyncio 异步协程处理是最合适的,但是爬网站的时候还是轻点,别给人干崩了

xu741852 发表于 2023-1-13 09:36


导包:from queue import Queue
         import threading
使用:用queue队列存放下载地址,然后开启多线程。
threading.Thread(target=函数名)
.start()
页: [1] 2
查看完整版本: python爬取网页图片时怎么多线程或多进程,加快速度