鱼C论坛

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

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

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

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

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

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


  8. User_Aget = UserAgent(use_cache_server=False)
  9. #   创建保存图片文件夹
  10. try:
  11.     os.makedirs(os.path.split(os.path.realpath(__file__))[0] + '\\图片\\' )
  12. except:
  13.     pass
  14. IMAGE_PATH = os.path.split(os.path.realpath(__file__))[0] + '\\图片\\'
  15. n = 1
  16. info_lists=[]
  17. csv_str = open('ftp.csv', 'r')
  18. #   按行读取
  19. list_d = csv_str.readlines()
  20. jj = []
  21. for d in list_d:
  22.     str_list = d.strip('\n|"')
  23.     if len(str_list) != 0:
  24.         jj.append(str_list)
  25. def get_info(url,n):
  26.     try:
  27.         headers = {
  28.             'User-Agent': User_Aget.random
  29.         }

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

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

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



  41. if __name__=='__main__':

  42.     start_1=time.time()
  43.     for url in jj:
  44.         get_info(url,n)
  45.         n += 1
  46.     #start_3=time.time()
  47.     pool = Pool(multiprocessing.cpu_count())
  48.     pool.map(get_info, jj)
  49.     #end_3 = time.time()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 22:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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