hua_python多线程爬取图片

本文介绍了一种利用Python的多线程技术实现的图片爬虫程序,该程序能够从txt文件读取图片链接,使用队列进行线程间通信,高效地爬取并保存图片。

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

1.读取txt文件中的图片链接放入队列中
2.多线程获取队列中的图片信息爬取图片

import requests
import threading
import queue

count = 0

class getImg(threading.Thread):
    def __init__(self, queue):  # 进程间通过队列通信,所以每个进程需要用到同一个队列初始化
        threading.Thread.__init__(self)
        self.queue = queue
        # self.setDaemon(True)         #守护线程
        self.start()  # 启动线程

    # 使用队列实现进程间通信
    def run(self):
        global count
        while (True):
            imgurl = self.queue.get()
            # print self.getName()

            r = requests.get(imgurl[1])
            with open(f'f:1/{count}.jpg', 'ab+') as f:
                f.write(r.content)
            count += 1
            if self.queue.empty():
                break
            self.queue.task_done()  # 当使用者线程调用 task_done() 以表示检索了该项目、并完成了所有的工作时,那么未完成的任务的总数就会减少。


def main():
    threads = []
    q = queue.Queue()
    c = 0
    with open('f:1.txt') as f:
        for i in f:
            q.put((c,i))
            c +=1

    # 多线程爬去图片
    for i in range(50):
        thread = getImg(q)
        threads.append(thread)
    for thread in threads:
        thread.join()


if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值