鱼C论坛

 找回密码
 立即注册
查看: 1514|回复: 0

[技术交流] 多进程图片下载

[复制链接]
发表于 2021-9-7 17:57:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 qq1084799589 于 2021-9-7 18:01 编辑
# -*- coding: utf-8 -*-
import requests
from multiprocessing import Pool
import multiprocessing
import os
import time
from fake_useragent import UserAgent


User_Aget = UserAgent(use_cache_server=False)
#   创建保存图片文件夹
try:
    os.makedirs(os.path.split(os.path.realpath(__file__))[0] + '\\图片\\' )
except:
    pass
IMAGE_PATH = os.path.split(os.path.realpath(__file__))[0] + '\\图片\\'
n = 1
info_lists=[]
csv_str = open('ftp.csv', 'r')
#   按行读取
list_d = csv_str.readlines()
jj = []
for d in list_d:
    str_list = d.strip('\n|"')
    if len(str_list) != 0:
        jj.append(str_list)
def get_info(url,n):
    try:
        headers = {
            'User-Agent': User_Aget.random
        }

        photos_url_str = requests.get(url, headers=headers)
        time.sleep(3)
        pic = photos_url_str.content
        # 图片内容需要以二进制wb读写

        photo = open(IMAGE_PATH + str(n) + '.jpg', 'wb')

        # 获取pic的二进制内容
        photo.write(pic)
        #    关闭文件
        photo.close()
    except requests.RequestException:
        jj.append(url)



if __name__=='__main__':

    start_1=time.time()
    for url in jj:
        get_info(url,n)
        n += 1
    #start_3=time.time()
    pool = Pool(multiprocessing.cpu_count())
    pool.map(get_info, jj)
    #end_3 = time.time()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 10:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表