首页 > 系统相关 >多进程下载nadc上的数据

多进程下载nadc上的数据

时间:2023-04-11 15:35:49浏览次数:38  
标签:info tqdm nadc download file 进程 import find 下载

import wget
from bs4 import BeautifulSoup as bs
import requests
import random
import requests
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor, Future, as_completed, wait
from multiprocessing import cpu_count

headers = [
        'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36',
        'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
        'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
        'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
        ]  # 随便找

def open_url(url):
    respon = requests.get(url, headers={"user-agent": random.choice(headers)}).content
    respon_decoded = respon.decode("utf-8")
    return respon_decoded


response = open_url('https://nadc.china-vo.org/res/r101217/')
soup = bs(response, 'html.parser')
pd_files = soup.find_all(id='pd-files')

file_info_list = []
for file in pd_files:
    file_info = {
        'file_name': file.find(class_='paperinfo-files-filename').text.strip(),
        'file_size': file.find(class_='paperinfo-files-filesize').text,
        'download_link': 'https://nadc.china-vo.org/'+file.find(class_='col-sm-1').find('a')['href']
    }
    file_info_list.append(file_info)
    

# python 源码
import requests
import time



def download(file_info):
    # 用流stream的方式获取url的数据
    resp = requests.get(file_info['download_link'], stream=True)
    # 拿到文件的长度,并把total初始化为0
    total = int(resp.headers.get('content-length', 0))
    # 打开当前目录的fname文件(名字你来传入)
    # 初始化tqdm,传入总数,文件名等数据,接着就是写入,更新等操作了
    with open('download/'+file_info['file_name'], 'wb') as file, tqdm(
        desc=file_info['file_name'],
        total=total,
        unit='iB',
        unit_scale=True,
        unit_divisor=1024,
    ) as bar:
        for data in resp.iter_content(chunk_size=1024):
            size = file.write(data)
            bar.update(size)

print(f'总共有:{cpu_count()} 个核心')
def test_tqdm():
    executor = ThreadPoolExecutor(max_workers=cpu_count()) # 线程池设置,最多同时跑8个线程
    for file_info in file_info_list:
        args = [file_info,]
        tasks = [executor.submit(lambda p:download(*p), args)]
    wait(tasks)
 
test_tqdm()

标签:info,tqdm,nadc,download,file,进程,import,find,下载
From: https://www.cnblogs.com/urahyou/p/17306399.html

相关文章

  • Apple Xcode 14.3 (14E222b) 正式版发布下载
    AppleXcode14.3(14E222b)正式版发布CommandLineToolsforXcode14,tvOS16&watchOS9SimulatorRuntime请访问原文链接:https://sysin.org/blog/apple-xcode-14/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgXcode14包含了在所有Apple平台上开发、测......
  • macOS Big Sur 11.7.6 (20G1231) 正式版 ISO、PKG、DMG、IPSW 下载
    本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年4月10日(北京时间11日凌晨),Apple为那些无法更新macOSVentura的旧Mac发布了macOSBig......
  • macOS Monterey 12.6.5 (21G531) 正式版发布,ISO、IPSW、PKG 下载
    本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年4月10日(北京时间11日凌晨),Apple为那些无法更新macOSVentura的旧Mac发布了macOSBig......
  • you-get下载视频脚本
     #!/usr/bin/python3#-*-coding:utf-8-*-#CreatedbyiFantasticon2020/8/7#用于视频下载(B站等)importsysfromyou_getimportcommonasyou_get#导入you-get库definfo():"""下载当前连接下1到10集视频:return:"""directory=r'/opt/......
  • 进程与线程&并行与并发的概念
    一、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进......
  • Java并发(一)----进程、线程、并行、并发
    一、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进......
  • 外文书籍下载网站
    分享一些外文书籍下载网站,我的筛选条件是免费、无过多限制。Z-library:微博正文ProjectGutenberg:网页链接Manybooks:网页链接PlaneteBook:网页链接Bookyards:网页链接PdfDrive:网页链接DigiLibraries:网页链接​​OpenStax:网页链接Digitalbookindex:网页链接SaltTiger:网页链接收起......
  • 下载行业报告
    每日报告:网页链接,可在线浏览和下载行业报告,目前免费,需登陆。​​​......
  • 「一键下载,尽揽天下图景」:全新在线地图下载工具震撼发布!
    如果您需要下载地图却苦于没有在线工具或者实用性不佳,现在有一个好消息要告诉你:一款功能强大的在线地图下载工具已经推出!这款工具支持下载高德、百度、腾讯、必应以及ArcGIS在线地图,并且还支持合并大图、自动分幅和坐标转换等功能。 使用该工具非常简单,只需要在地图上框选或导......
  • 关于Studio Style不能下载的解决方法
     关于StudioStyle不能下载的解决方法Teriri23IP属地:德克萨斯州2020.03.0223:59:58字数444阅读921最近在做毕设,需要用到Unity3D和VS。之前一直在用eclipse。突然打开VS发现白色的背景好刺眼,于是想要改成黑色。才发现原来可以用别人配好的主题,早就因为自己不......