首页 > 编程语言 >[Python]async异步爬虫

[Python]async异步爬虫

时间:2023-03-30 16:14:26浏览次数:31  
标签:异步 Python await url session file async asyncio

import asyncio
import aiohttp


async def download_img(session, url):
    file_name = url.rsplit('/')[-1]
    print(f"下载图片:{file_name}")
    await asyncio.sleep(2)
    response = await session.get(url, ssl=False)
    content = await response.content.read()
    with open(file_name, mode='wb') as file:
        file.write(content)
        print(f"下载完成:{file_name}")


async def main():
    urls = [
        "https://tenfei05.cfp.cn/creative/vcg/800/new/VCG41560336195.jpg",
        "https://tenfei03.cfp.cn/creative/vcg/800/new/VCG41688057449.jpg",
    ]
    async with aiohttp.ClientSession() as session:
        tasks = [asyncio.ensure_future(download_img(session, url)) for url in
                 urls]
        await asyncio.wait(tasks)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

标签:异步,Python,await,url,session,file,async,asyncio
From: https://www.cnblogs.com/leoshi/p/17273118.html

相关文章

  • 【Python】函数的可变参数 *args 和 **kwargs的使用
    可变参数*args和**kwargs*args和**kwargs主要用于定义函数的可变参数,*args和**kwargs组合起来可以传入任意的参数。(注意:参数*args必须在**kwargs之前定义)*arg......
  • python——list求交集、并集、差集
    https://blog.csdn.net/qq_41985134/article/details/122956104   ......
  • python学习(二)
    1Python中的标识符和保留字有的单词赋予了特定的意义,在给对象起名字时不能使用例如代码:importkeywordprint(keyword.kwlist)结果:['False','None','True','and......
  • 同步和异步,阻塞和非阻塞
    同步和异步,阻塞和非阻塞-结合一个例子简单说明同步和异步针对请求的客户端和请求的连接例如:客户端有一个请求的连接,我要去请求服务器端处理一个数据返回一个结果,但是服......
  • python+playwright 学习-42 离线安装 playwright 环境
    前言有些同学可能是在公司局域网办公,无法连到外网去在线下载,本篇教大家在本地局域网部署好playwright环境playwright本地下载先找个有网络的电脑,下载playwright,不要......
  • 连接 AI,NebulaGraph Python ORM 项目 Carina 简化 Web 开发
    作者:Steam&Hao本文整理自社区第7期会议中13‘21″到44’11″的PythonORM的分享,视频见https://www.bilibili.com/video/BV1s8411N7Cw在做业务开发时,Nebula......
  • Java异步编程CompletableFuture
    Java通过多线程可以实现异步编程,下面是一个使用Java多线程实现异步编程的示例:publicclassAsyncDemo{publicstaticvoidmain(String[]args){Exec......
  • python_Package相关
    将自己的工作,构建为python的Package并上传至PYPI,使得其他开发者可以通过pip安装并使用。这是我一直想做的事情,最近我成功将微博数据采集项目封装并上传至PYPI。为使得后续......
  • Python自然语言处理基础实验2_基于HMM的中文分词
    实验目的了解并掌握基于隐马尔可夫模型(HMM)的分词方法,重点掌握Viterbi算法。实验要求1、对给定的语料库(或自行准备)进行统计分析,确定HMM模型的三个参数;2、根据上一步求得的......
  • Python编程必不可少的pytest测试框架
    进行编程测试重要的是为了更高效的完成功能的实现。pytest是基于unittest实现的第三方测试框架,比unittest更加的简洁、高效,并且可以完美兼容unittest的测试代码,无需对......