1——找到需要的内容
2——Python实现
2.1 新手体验
# author: mmm
# datetime:2022/6/28 20:26 周二
# software: PyCharm
"""
文件说明:
"""
import asyncio
async def fun1(): # 1. 定义协程函数
print('2022年6月26日22:09:13')
asyncio.sleep(2)
print('2022年6月28日20:24:38')
# asyncio.run(fun1()) # 1.1 fun1()是一个协程对象
async def fun2():
print('发送请求')
await asyncio.sleep(2) # 协程对象;task对象
print('结束啦')
async def fun3():
task1 = asyncio.create_task(fun1())
task2 = asyncio.create_task(fun2())
# await task1
# await task2
finishs, waits = await asyncio.wait([task1, task2]) # 任务列表——完成与等待
print(finishs)
asyncio.run(fun3())
2.2 warm up
# author: mmm
# datetime:2022/6/28 20:26 周二
# software: PyCharm
"""
文件说明:
"""
import asyncio
import json
import requests
import aiohttp # 单线程异步协程
async def download(urls):
print('开始下载文件')
file_name = urls.split('/')[-1][:6]
suffix = urls.split('.')[-1]
async with aiohttp.ClientSession() as sess:
async with await sess.get(url=urls) as response:
# sess.post() 对应post方法
# response.text() requests的text属性
# response.read() requests的content属性
# json()
data = await response.read()
with open(f'c://mmm/{file_name}.{suffix}', 'wb') as ff:
ff.write(data)
print('下载好啦——(~ ̄▽ ̄)~阿啦啦啦')
url_list = ['http://www.jkl.com.cn/UserFiles/upload/file/20220421/2021%E5%B9%B4%E6%8A%A5.pdf',
'http://www.jkl.com.cn/UserFiles/c00814-14551490725.pdf',
'http://www.jkl.com.cn/UserFiles/c1-14094425374.pdf'
]
task_list = [download(i) for i in url_list]
asyncio.run(asyncio.wait(task_list))
2.3 修改之前的项目(同步—>异步)
1.1 获得链接
1.2 获得页码
1.3 获取数据
1.4 数据保存