从数据库中读取图片链接,用协程gevent将图片下载到指定目录保存

本文介绍了一种使用Python连接数据库并从数据库中提取图片URL的方法,随后利用gevent协程进行图片的批量下载,提高了下载效率。

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

1、链接数据库

from pymysql import *


# 创建connection链接, 链接数据库
conn = connect(host='192.168.79.136', port=3306, database='yi_heng', user='root', password='abc123@2018', charset='utf8')
# 获取cursor游标对象
cursor = conn.cursor()
count = cursor.execute("select * from BOOHEE_Foods_data")
# print(count)
result = cursor.fetchall()
# print(result)

url_list = []

for row in result:
    # print(row)
    data = row  # 对应数据库中的image_url
    url_list.append(data)

print(url_list)


2、运用python的协程gevent进行下载

import client_mysql
import gevent
import urllib.request
from gevent import monkey
import time

# 有耗时操作时使用
monkey.patch_all()


def download(image_name, url):
    # 文件位置
    file_name = '/home/python/Desktop/yiheng/医疗养生/food/New_Foods_image'
    # 打开制定的url
    respond = urllib.request.urlopen(url)
    # 读文件
    data = respond.read()
    # 写入文件
    with open(file_name + '/' + image_name, "wb") as f:
        f.write(data)


def main():
    """控制程序的整体运行"""
    
    for url in client_mysql.url_list:

        gevent.joinall([
            gevent.spawn(download, str(url[2])+'.jpg', url[3])
        ])

        time.sleep(1)

if __name__ == '__main__':
    main()
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值