python爬虫 asyncio aiohttp aiofiles 单线程多任务异步协程爬取图片
python爬虫 asyncio aiohttp aiofiles 多任务异步协程爬取图片
main.py
"""=== coding: UTF8 ==="""
# requests.get()同步代码 -> 异步操作aiohttp
import asyncio
import aiohttp
import aiofilesurls = ["https://img.lianzhixiu.com/uploads/allimg/202109/9999/d1eeaa0450.jpg","https://img.lianzhixiu.com/uploads/allimg/202109/9999/6747451f08.jpg","https://img.lianzhixiu.com/uploads/allimg/202108/9999/88abd53cc1.jpg"]async def aioDownload(url):# 发送请求# 得到图片内容# 保存到文件print("开始下载")name = url.rsplit("/", 1)[1] # 从右边切一次,得到[1]位置的内容async with aiohttp.ClientSession() as session: # 相当于requestsasync with session.get(url) as resp: # 相当于resp = requests.get()# 请求回来了,aiofiles写入文件,async with aiofiles.open(name, mode='wb') as f: # 创建文件await f.write(await resp.content.read()) # 读取内容是异步的,需要await挂起,resp.text()print("下载完成")async def main():# 准备异步协程对象列表tasks = []for url in urls:task = asyncio.create_task(aioDownload(url))tasks.append(task)await asyncio.wait(tasks)"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':# 一次性启动多个任务# asyncio.run(main())loop = asyncio.get_event_loop()loop.run_until_complete(main())
关注公众号,获取更多资料
python爬虫 asyncio aiohttp aiofiles 单线程多任务异步协程爬取图片相关推荐
- 爬虫第四章 单线程+多任务异步协程
单线程+多任务异步协程: asyncio 事件循环 loop: 无限循环的对象,事件循环中最终需要将一些特殊的函数注册到该事件循环中特殊的函数: 被ansyc关键字修饰的函数协程: 本质上是一个对象, ...
- 爬虫的单线程+多任务异步协程:asyncio 3.6
单线程+多任务异步协程:asyncio 3.6 事件循环 无限循环的对象.事件循环中最终需要将一些 特殊的函数(被async关键字修饰的函数) 注册在该对象中. 协程 本质上是一个对象.可以把协程对象 ...
- 11 单线程+多任务异步协程 爬虫
# from lxml import etree import asyncio import aiohttp import time def callback(task): # 回调函数page = ...
- 小爬爬4.协程基本用法多任务异步协程爬虫示例(大数据量)
1.测试学习 (2)单线程: from time import sleep import time def request(url):print('正在请求:',url)sleep(2)print(' ...
- python爬虫 单线程的多任务异步协程
在input().sleep(2).request.get()等时,都会导致线程阻塞,协程可以解决IO等操作时的阻塞现象,提高CPU利用效率. 1.单线程的多任务异步协程 main.py " ...
- python爬虫02-提升爬取效率、多线程,多线程传参,多进程,线程及线程池概念,协程,多任务异步协程,异步请求aiohttp模块,视频站工作原理
1.提升爬取效率 使用多线程,多进程,携程,异步 2.多线程 进程是资源单位,每个进程,都会有一个默认的主线程 线程是执行单位 执行多线程需要导包: from threading import Thr ...
- Python爬虫——aiohttp异步协程爬取同程旅行酒店评论
大家好!我是霖hero Python并发编程有三种方式:多线程(Threading).多进程(Process).协程(Coroutine),使用并发编程会大大提高程序的效率,今天我们将学习如何选择多线 ...
- Python分别用单线程,多线程,异步协程爬取一部小说,最快仅需要5s
文章目录 单线程爬取 多线程爬取 异步协程爬取 本文运用了三种方式爬取一整部小说,分别运用了单线程爬取,多线程爬取和异步协程爬取. 小说网址:` http://www.doupo321.com/dou ...
- 送书 | aiohttp异步协程爬取同程旅行酒店评论并作词云图
大家好!我是啃书君! Python并发编程有三种方式:多线程(Threading).多进程(Process).协程(Coroutine),使用并发编程会大大提高程序的效率,今天我们将学习如何选择多线程 ...
最新文章
- 【Smart_Point】C/C++ 中智能指针
- 诚聘英才,共创未来!华南农业大学农学院高层次人才招聘
- 限定概率抽奖_圣诞节LOL紫色宝箱30连抽,限定全是冰雪,节日气氛很浓
- 使用navigator对象,输出当前浏览器的信息
- 【多线程】并发执行指定数量的线程
- SQL 复习二(数据查询语言)
- Avalon二数据填充
- 中国34个省级行政区2000年-2021年逐月1km植被指数NDVI栅格数据处理及下载
- 【嵌入式系统开发19】理解嵌入式实时操作系统,以uc/OS为例利用C8T6完成LED周期闪烁以及串口周期输出
- postman更换皮肤
- lay和lied_lay和lie的区别
- eclipse官网下载不了eclipse开发工具的解决方法
- 一文读懂css的相对定位【relative position】以及相对定位为什么要设置偏移量?
- Gartner 2019年EPP(终端防护)魔力象限(Endpoint protection platforms)
- VBScript脚本运用(脚本程序与宿主程序的交互)
- 5G术语(一)-NR、NSA/SA
- Spring Boot Admin2 @EnableAdminServer的加载
- 在w ndoWS7中屏幕保护程序,“屏保”存放在WINDOWS下的哪个文件夹 – 手机爱问
- Google 0day远程命令执行漏洞复现
- 计算机能够自动完成运算或处理过程的基础是,计算机文化基础题库.doc