利用Python编写图片下载器,单线程与多线程版合集

Python爬虫实战:解析B站API批量下载高清视频封面 网络爬虫是一种自动化获取网页数据的程序技术,其核心原理是通过模拟浏览器行为向服务器发送HTTP请求并解析响应数据。在数据采集和内容聚合场景中,爬虫技术能显著提升信息获取效率。针对多媒体内容处理,Python的requests库配合API接口调用成为主流方案,可稳定获取结构化数据。本文以B站视频封面下载为例,详解如何通过分析官方API接口实现高清图片批量抓取,涵盖请求头模拟、JSON数据解析、文件流处理等关键环节,并探讨了线程池并发优化等工程实践技巧,为多媒体素材自动化采集提供可复用的解决方案。 阅读详情
  • 前言
  • 一、单线程版
  • 二、多线程版
  • 写在最后

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:961562169

Tip:本文仅供学习与参考,且勿用作不法用途~

前言

某个夜深人静的夜晚,我打开了自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。
说干就干,那就开一个专题,我们称之为kimol君的无聊小发明。
妙…啊~~~

网上爬虫入门教程有很多,大多是从下载图片开始~正经人谁不下载一下图片呢,对叭?
kimol君也不例外,咱上图瞧一瞧:

一、单线程版

关于该网站的爬取应该来说是比较入门的了,因为并没涉及到太多的反爬机制,据目前来看主要有两点:

  • headers中Referer参数:其解决方法也很简单,只需要在请求头中加入这个参数就可以了,而且也不需要动态变化,固定为主页地址即可。
  • 请求速度限制:在实际爬取过程中我们会发现,如果爬取速度过快IP往往会被封了,而这里我们只需要适当限制速度或者加入代理池即可。

具体的爬虫分析,网上随便一搜就是一堆,我这里就直接献上代码好了:

# =============================================================================
# Mzitu图片爬取
# =============================================================================
import re
import os
import time
import queue
import requests
from tqdm import tqdm
from termcolor import *
from colorama import init

# 解决CMD无法显示颜色问题
init(autoreset=False)
    
class spider_Mzidu():
    def __init__(self):
        # 定义请求地址
        self.url_page = 'https://www.mzitu.com/page/%d/' # 搜索页面(用以获取ID)
        self.url_taotu = 'https://www.mzitu.com/%s'      # 页面(用以获取图片地址)
        
        # 定义请求头
        self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0',
                        'Accept': '*/*',
                        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
                        'Accept-Encoding': 'gzip, deflate, br',
                        'X-Requested-With': 'XMLHttpRequest',
                        'Connection': 'keep-alive',
                        'Referer': 'https://www.mzitu.com',
                       }
        
        # 定义正则表达式
        self.p_id = '<span><a href="https://www.mzitu.com/(\d*?)" target="_blank">(.*?)</a></span>'
        self.p_imgurl = '<img class="blur" src="(.*?)"'
        self.p_page = '…</span>.*?<span>(\d*?)</span>'
        
        # 存储变量
        self.queue_id = queue.Queue()
        
    def getPages(self): # 获取总页数
        res = requests.get(self.url_page%1,headers=self.headers)
        html = res.text
        N = re.findall('''class="page-numbers dots">[\s\S]*?>(\d*?)</a>[\s\S]*?"next page-numbers"''',html)[0]
        return int(N)
        
    def getID(self): # 获取ID
        page_range = input('请输入爬取页数(如1-10):')
        p_s = int(page_range.split('-')[0])
        p_e = int(page_range.split('-')[1])
        time.sleep(0.5)
        print(colored('开始获取套图ID'.center(50,'-'),'green'))
        bar = tqdm(range(p_s,p_e+1),ncols=60) # 进度条
        for p in bar:
            res = requests.get(self.url_page%p,headers=self.headers)
            html = res.text
            ids = re.findall(self.p_id,html)
            for i in ids:
                self.queue_id.put(i)
            bar.set_description('第%d页'%p)
    
    def downloadImg(self,imgurl): # 下载图片
        res = requests.get(imgurl,headers=self.headers)
        img = res.content
        return img

    def parseTaotu(self,taotuID): # 解析"图片数量",以及"图片地址"
        res = requests.get(self.url_taotu%taotuID,headers=self.headers)
        html = res.text
        page = int(re.findall(self.p_page,html)[0])
        imgurl = re.findall(self.p_imgurl,html)[0]
        imgurl = imgurl[:-6]+'%s'+imgurl[-4:]
        return(imgurl,page)
    
    def downloadTaotu(self): # 下载 
        while not self.queue_id.empty():
            taotu = self.queue_id.get()
            taotuID = taotu[0]
            taotuName = taotu[1]
            try:
                imgurl,page = self.parseTaotu(taotuID)
                path = '[P%d]'%page+taotuName
                if not os.path.exists(path):
                    os.mkdir(path)
                bar = tqdm(range(1,page+1),ncols=50) # 进度条
                for i in bar:
                    url = imgurl%(str(i).zfill(2))
                    img = self.downloadImg(url)
                    with open('./%s/%d.jpg'%(path,i),'wb') as f:
                        f.write(img)
                print('套图("'+colored(taotuName,'red')+'")爬取完成')
            except:
                time.sleep(3)
                self.queue_id.put(taotu)
        
    def run(self): # 主程序
        os.system('cls')  # 清空控制台
        print('*'*35)
        print('*'+'欢迎使用Mzitu下载器'.center(26)+'*')
        print('*'*35)
        N = self.getPages()
        print(('Mzitu当前共有%s页!'%colored(N,'red')).center(30))
        print('\n')
        self.getID()
        print('\n'+colored('开始爬取套图'.center(50,'-'),'green'))
        self.downloadTaotu()
            
spider = spider_Mzidu()
spider.run()

二、多线程版

有小伙伴估计得问了:“单线程这么慢?您是在开玩笑的叭,等得我不得憋坏咯?”
客官这边请,来试试多线程版的好了:

# =============================================================================
# Mzitu图片爬取(多线程)
# =============================================================================
import re
import os
import time
import queue
import requests
import threading
from tqdm import tqdm
from termcolor import *
from colorama import init

# 解决CMD无法显示颜色问题
init(autoreset=False)

# 代理(XXX代理)
def Get_proxy():
    res = requests.get('xxxxxxxxxxxxxxxxxxx')
    html = res.text
    return html
    
class spider_Mzidu():
    def __init__(self):
        # 定义请求地址
        self.url_page = 'https://www.mzitu.com/page/%d/' # 搜索页面(用以获取ID)
        self.url_taotu = 'https://www.mzitu.com/%s'      # 页面(用以获取地址)
        
        # 定义请求头
        self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0',
                        'Accept': '*/*',
                        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
                        'Accept-Encoding': 'gzip, deflate, br',
                        'X-Requested-With': 'XMLHttpRequest',
                        'Connection': 'keep-alive',
                        'Referer': 'https://www.mzitu.com',
                       }
        
        # 定义正则表达式
        self.p_id = '<span><a href="https://www.mzitu.com/(\d*?)" target="_blank">(.*?)</a></span>'
        self.p_imgurl = '<img class="blur" src="(.*?)"'
        self.p_page = '…</span>.*?<span>(\d*?)</span>'
        
        # 存储变量
        self.queue_id = queue.Queue()
        
        #HTTP代理
        proxy = Get_proxy()
        self.proxies = {'http':'http://'+proxy,
                        'https':'https://'+proxy} 
        
    def getPages(self): # 获取总页数
        res = requests.get(self.url_page%1,headers=self.headers,proxies=self.proxies,timeout=10)
        html = res.text
        N = re.findall('''class="page-numbers dots">[\s\S]*?>(\d*?)</a>[\s\S]*?"next page-numbers"''',html)[0]
        return int(N)
        
    def getID(self): # 获取ID
        page_range = input('请输入爬取页数(如1-10):')
        p_s = int(page_range.split('-')[0])
        p_e = int(page_range.split('-')[1])
        time.sleep(0.5)
        print(colored('开始获取套图ID'.center(50,'-'),'green'))
        bar = tqdm(range(p_s,p_e+1),ncols=60) # 进度条
        for p in bar:
            res = requests.get(self.url_page%p,headers=self.headers,proxies=self.proxies,timeout=10)
            html = res.text
            ids = re.findall(self.p_id,html)
            for i in ids:
                self.queue_id.put(i)
            bar.set_description('第%d页'%p)
    
    def downloadImg(self,imgurl,proxies): # 下载图片
        res = requests.get(imgurl,headers=self.headers,proxies=proxies,timeout=10)
        img = res.content
        return img

    def parseTaotu(self,taotuID,proxies): # 解析的"图片数量",以及"图片地址"
        res = requests.get(self.url_taotu%taotuID,headers=self.headers,proxies=proxies,timeout=10)
        html = res.text
        page = int(re.findall(self.p_page,html)[0])
        imgurl = re.findall(self.p_imgurl,html)[0]
        imgurl = imgurl[:-6]+'%s'+imgurl[-4:]
        return(imgurl,page)
    
    def downloadTaotu(self): # 下载 
        proxy = Get_proxy()
        proxies = {'http':'http://'+proxy,
                   'https':'https://'+proxy} 
        while not self.queue_id.empty():
            taotu = self.queue_id.get()
            taotuID = taotu[0]
            taotuName = taotu[1]
            try:
                imgurl,page = self.parseTaotu(taotuID,proxies)
                path = '[P%d]'%page+taotuName
                if not os.path.exists(path):
                    os.mkdir(path)
                bar = tqdm(range(1,page+1),ncols=50) # 进度条
                for i in bar:
                    url = imgurl%(str(i).zfill(2))
                    img = self.downloadImg(url,proxies)
                    with open('./%s/%d.jpg'%(path,i),'wb') as f:
                        f.write(img)
                print('套图("'+colored(taotuName,'red')+'")爬取完成')
            except:
                time.sleep(3)
                proxy = Get_proxy()
                proxies = {'http':'http://'+proxy,
                           'https':'https://'+proxy} 
                self.queue_id.put(taotu)
                
    def changeProxy(self): # 更换代理
        proxy = Get_proxy()
        self.proxies = {'http':'http://'+proxy,
                        'https':'https://'+proxy} 
        
    def run(self): # 主程序
        os.system('cls')  # 清空控制台
        print('*'*35)
        print('*'+'欢迎使用Mzitu下载器'.center(26)+'*')
        print('*'*35)
        N = self.getPages()
        print(('Mzitu当前共有%s页!'%colored(N,'red')).center(30))
        print('\n')
        self.getID()
        print('\n'+colored('开始爬取套图'.center(50,'-'),'green'))
        # 多线程下载
        N_thread = 3
        thread_list = []
        for i in range(N_thread):
            thread_list.append(threading.Thread(target=self.downloadTaotu))
        for t in thread_list:
            t.start()
        for t in thread_list:
            t.join()
            
spider = spider_Mzidu()
spider.run()

细心的大大应该发现了,其实多线程版跟单线程版结构上几乎没有太大的差别(这里也提供了一种代码思路,这样使得如果我们以后想把原来代码改为多线程,可以更加方便快捷),主要是这两点:

  • 调用downloadTaotu()函数的时候,使用threading模块开启多线程多次调用。
  • 加入了HTTP代理模块。这里大家可以酌情考虑是否保留,不过根据我测试发现,如果是使用多线程的话,建议大家还是加入代理,不然IP很可能被封。

 

教你一招用Python打造一款批量下载视频并能可视化显示下载进度的下载器(小本本记下来) 前言: 平时宅在家的我们最爱做的事莫过于追剧了,但是有时候了,网络原因,可能会让你无网可上。这个时候那些好看的电视剧和电影自然是无法观看了,本期我们要讲的就是怎样下载这些视频。 一、项目目的 通过Python程序对所感兴趣的视频进行批量下载。正好小编近期看到一些不错的视频,因为想往安卓方向走,但又苦于重新学习太复杂,有没有简单点的,之前好像有什么e4a但是要学易语言就放弃了,于是乎在茫茫网络发现了一个小众的编程语言---裕语言。好家伙,不说了,赶紧下载,盘它。 二、效果展示 1、采用sublime 阅读详情

相关推荐

Python的单线程和多线程

python的单线程和多线程

lucky_shi的博客 3927

Python GUI编程之tkinter入门案例--简单的自动文件下载器

利用Python3.6开发了一个简易版的文件批量下载软件demo,使用的GUI工具是tkinter。默认打开桌面的文件夹,可以实现自动读取文本文件中的文件超链接,实现自动下载到桌面。

JasonStudy 2901

【Python爬虫系列】_020.异步协程asyncio

asyncio是用来编写并发代码的库,使用语法。asyncio被用作多个提供高性能Python异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。asyncio往往是构建IO密集型和高层级 结构化 网络代码的最佳选择。

weixin_50296259的博客 320

python3GUI--壁纸下载工具(附tk源码)

文章目录一.准备工作二.预览1. 主界面2. 壁纸检索3. 壁纸查看、下载三.基本思路四.源代码(Tk)五.总结 继续练习Tk,本次使用Tk制作一款壁纸下载工具,支持分类查看以及定向搜索查看壁纸,分类高达15个,让我们开始吧~ 一.准备工作 python Tkinter 二.预览 1. 主界面 主界面打开后会展示十几个分类,点击分类就能进入分类 2. 壁纸检索 点击检索之后,会展示检索结果 3. 壁纸查看、下载 点击图片后会弹出新窗口,此时可以下载图片到本地 三.基本思路 四.源代码(Tk) #-

懷淰メ的博客 1233

移动端UI自动化测试新框架Maestro:声明式语法与实战指南

UI自动化测试是保障移动应用质量的关键环节,其核心原理是通过脚本模拟用户操作,对应用界面进行自动验证。传统命令式框架(如基于Selenium WebDriver的Appium)虽然控制粒度细,但脚本编写和维护成本较高。声明式测试框架则通过描述“做什么”而非“怎么做”,显著降低了技术门槛和维护复杂度,其技术价值在于提升测试脚本的可读性、编写效率与跨团队协作能力。在移动端测试领域,这尤其适用于需要快速验证核心业务流程、进行冒烟测试和回归测试的场景。本文聚焦的**Maestro框架**,正是这一理念的杰出实践。它

weixin_32921023的博客 713

单片机通识之UART通信协议(如何用汇编实现)

使用汇编实现UART通信

smart_num_1的博客 997

【kimol君的无聊小发明】—用python写图片下载器

【kimol君的无聊小发明】—用python写图片下载器前言一、单线程版二、多线程版写在最后 Tip:本文仅供学习与参考,且勿用作不法用途~ 前言 某个夜深人静的夜晚,我打开了自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。 说干就干,那就开一个专题,我们称之为kimol君的无聊小发明。 妙…啊~~~ 网上爬虫入门教程有很多,大多是从下载图片开始~正经人谁不下载一下图片呢,对叭? kimol君也不例外,咱上图瞧一瞧: 一、单线程版 关

kimol君的博客 1万+

DDR4技术原理详解

DDR4是DDR4-SDRAM的简写,即第4代DDR-SDRAM,DDR-SDRAM全称Double Date Rate Synchronous Dynamic Random Access Memory。本文重点解析DDR4技术规范及其背后的电子电路原理,以及编程使用DDR4过程中需要注意的性能事项。

ctbinzi的专栏 1万+

用Python打造批量下载视频并能可视化下载进度的炫酷下载器

大家好,今天给大家整点好玩的,一起来看看吧~ 【一、项目背景】 平时宅在家的我们最爱做的事莫过于追剧了,但是有时候了,网络原因,可能会让你无网可上,这个时候那些好看的电视剧和电影自然是无法观看了,本期我们要讲的就是怎样下载这些视频。 老规矩,需要打包好的项目关注小编,申请QQ群:705933274即可免费领取 【二、项目目标】 通过Python程序对所感兴趣的视频进行批量下载,正好小编近期看到一些不错的视频,因为想往安卓方向走,但又苦于重新学习太复杂,有没有简单点的,之前好像有什么e4a但

m0_55479420的博客 422

工业场景实战:基于YOLO与多格式标注的传送带异物检测数据集构建指南

本文详细介绍了基于YOLO与多格式标注的传送带异物检测数据集构建方法,涵盖数据采集、标注技巧(YOLO、COCO、VOC格式)、数据增强策略及实战案例。通过工业级解决方案,有效提升异物检测准确率与效率,适用于各类工业场景。

weixin_29168393的博客 463

zabbix监控深信服下一代防火墙配置

深信服下一代防火墙v8.0管理界面,zabbix,SNMP

weixin_43996471的博客 6873

用Python写一个带进度条的简单下载器

None import requests from tqdm import tqdm def download(url, file_name): headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62'

一个Python小白的博客 1005

告别编译臃肿!手把手教你为Arduino UNO打造超轻量级U8g2中文字库(附完整工具链)

本文详细介绍了如何为Arduino UNO打造超轻量级U8g2中文字库,解决默认字库占用大量存储空间的问题。通过自定义字体工具链,提取项目所需汉字并生成精简字库,显著减少程序体积。文章包含完整实现步骤、优化技巧及实战经验,帮助开发者在资源受限的微控制器上高效显示中文。

weixin_29274337的博客 258

零延迟指标如何炼成:metatrader5的ZLSMA、Chandelier Exit等核心指标源码拆解

metatrader5 是一个基于 MQL5 语言的开源交易策略项目,为 MetaTrader 5(MT5)平台提供免费的交易机器人(Expert Advisors)与自定义指标,其中 **ZLSMA(零延迟最小二乘移动平均)** 和 **Chandelier Exit(吊灯退出)** 是最具代表性的两个核心指标。本文带你快速拆解这些指标的实现原理与关键源码,并给出完整的回测验证方法,新手也能照着

gitblog_00370的博客 219

Windows安装 OpenClaw详细教程(使用wsl2+ubuntu)

OpenClaw 是一款于 2026年1月 正式对外开源的个人AI助手平台(AI Agent),由 PSPDFKit 创始人彼得·斯坦伯格(Peter Steinberger) 开发。它不仅仅是一个聊天机器人,更是一个能够主动执行任务的“数字管家”。OpenClaw的核心特点是本地化部署、隐私可控以及强大的自动化执行能力。OpenClaw 项目在开发过程中经历过两次更名,最终定为现名:初名:Clawdbot(因与 Claude 名称过于相似引发侵权争议而改名)。

猿小白的博客 1008

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如何快速批量下载微博高清图片:完整微博图片爬虫使用指南

微博图片爬虫是一款高效的微博图片下载工具,专门为需要批量获取微博图片的用户设计。这款开源工具通过智能爬取技术,让用户能够轻松下载微博用户的高清原图,支持多线程异步下载、异常自动重试和增量更新机制,大幅提升图片收集效率。无论是自媒体内容创作、学术研究数据收集,还是个人图片收藏,微博图片爬虫都能提供稳定可靠的解决方案。 ## 📊 微博图片爬虫的核心功能亮点 ### 极速多线程下载引擎 微博图片爬

gitblog_01191的博客 274

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python3.6进度条_Python实现下载界面(带进度条,断点续传,多线程多任务下载等)...

开发环境:Windows 7 64位,Python 3.6.2实现功能:进度条,下载速度和下载进度的显示,断点续传(暂停继续下载功能),取消下载等功能下载界面,如图所示点击‘新建任务‘,弹出输入下载链接的窗口,如图所示点击‘开始下载‘,可以自动获取下载文件名和选择存储路径,如图所示:关键代码:因为断点续传是在之前的文件继续追加,所以open(filename,‘ab‘)这里打开文件的模式要为ab实...

weixin_32529407的博客 578

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python下载文件带进度条_downloader-cli 一个用Python编写的简单下载器,带有很棒的进度条...

downloader-cliA simple downloader written in Python with an awesome progressbar. InstallationThe package is available in PyPi hereInstall it usingpip install downloader-cliIf you want to manuall insta...

weixin_39558391的博客 257

使用python下载文件_如何使用python下载文件

本文研究讨论如何使用python进行文件下载1. 选择下载工具下载文件,本质上是一个发送http请求然后接受服务器响应数据的过程。python标准库里提供了urllib3这个可以进行网络编程的标准库,但其提供的接口并不友好,至少不如requests库,因此,我首先推荐你使用requests进行网络编程1.1 使用requests进行文件下载import requestsurl = 'https:/...

weixin_39931390的博客 347

PyQt5 GUI:百度图片下载器(文末附源码)

通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。可以通过界面上输入不同图片的关键字从而实现下载图片并将下载好的图片保存到自定义的文件路径中。 文末附源码、操作视频 【阅读全文】 在介绍代码块内容之前,先来看一下需要用到的三方的 python 库。 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import os from scripy_images i

梦在硅谷的博客 720

GUI实战|Python做一个文档图片提取软件

大家好,本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGUI,做一个多文件图片提取软件,效果如下:本文主要将分为以下部分讲解:P...

小詹学python的博客 560

python3制作下载器_用python3和Tkin制作GUI文件下载器

(如果对任何人都重要的话,我使用的是python3.6.6)我正在为一个游戏做一个GUI安装程序,目前在私有alpha中,并且不断更新。在我已经制作了一个控制台版本:from tqdm import tqdmimport requests, os, sys, zipfile, shutil, subprocesschunk_size = 1024url = "{LINK TO FILE YOU W...

weixin_39679061的博客 272

【python3应用】单线程下载多种格式文件

- 说明:对于譬如百度爬虫能爬到的页面内容,此python爬虫不当作破解活动。 - 封装好的单线程爬取文件的python3爬虫: 1. sleep延时对对方服务器友好,不至于拖死下行带宽; 2. 单线程更好的控制文件下载断点; 3. 同步特性完成文件的批量下载。 - 全部代码如下: (使用过程中会有一小部分的文件下载为空或者下载报错跳过,可能原因是对方服务器文件编码错误或本地电脑...

User XXX Blog 298

Python图片下载器(单线程PK多线程)_一蓑烟雨任平生

文章目录前言一、有编程基础的看这个二、没编程基础的看这个总结 前言 最近电脑总是弹出少儿不宜网站,关了,过两天又出来,我真的受不了了,那就盘它好了,本博客分两部分,针对小白一份源码,针对不会编程的人群一份exe,双击就可以了 一、有编程基础的看这个 # 爬取妹子图全网妹子图片,可以选择爬取年份,自动分类保存 import requests, os, time import urllib3 # 这个纯粹防止warning提示,没啥作用 import easygui urllib3.disable_war

Jaeger_Java的博客 1921

Python 多线程下载图片

多线程下载图片 参考连接: Python标准库—urllib和urllib3 urllib实战2–urllib基础urlretrieve()、urlcleanup()、info()、getcode()、geturl()的应用 展示 Python 多线程下载图片~ python简单爬虫练习,python版本3.7,全部用标准库实现,线程池使用concurrend的ThreadPool

weixin_44500833的博客 593
上一篇: 让你的输出变得更帅,Python炫酷的颜色输出与进度条打印
下一篇: 10行Python代码,采集笔趣阁小说!
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值