zoukankan      html  css  js  c++  java
  • asyncio和aiohttp

    asyncio官网

    https://docs.python.org/zh-cn/3/library/asyncio-task.html

    下面为伪代码:

    import aiohttp
    
    import asyncio
    from bs4 import BeautifulSoup import pandas as pd # 将数据存入 li=[]或数据库 #获取页面 li=[] async def fetch(url,session): async with session.get(url) as response: return await response.text # 解析网页 async def parse(html): soup = BeautifulSoup(html,'lxml') # 获取网页中的畅销书 book_list=soup.find('ul',class_='book_list')('li') for book in book_list: info =book.find_all('div') # 获取每本畅销书的排名,名称,评论数,作者,出版社 rank = info[0].text[0:-1] name = info[2].text comments = info[3].text.split('')[0] author = info[4].text date_and_publisher = info[5].text.split() publisher = date_and_publisher[1] if len(date_and_publisher) >= 2 else '' # 将每本畅销书的上述信息加入到table中 li.append([rank, name, comments, author, publisher]) # 处理页面 async def download(url): async with aiohttp.ClientSession as session: # 获取页面 html = await fetch(session, url) # 解析页面 await parse(html) # 全部网页urls urls=[url1,url2,url3] # 利用asycio 模块进行一步IO处理 loop = asyncio.get_event_loop() # 异步获取任务 tasks= [asyncio.ensure_future(download(url)) for url in urls] tasks = asyncio.gather(*tasks) loop.run_until_complete(tasks) # 将table转化为pandas中的DataFrame并保存为CSV格式的文件 df = pd.DataFrame(li, columns=['rank','name','comments','author','publisher']) df.to_csv('E://douban/dangdang.csv',index=False)
  • 相关阅读:
    xunjian.sh
    192.168.50.235配置
    自动备份并删除旧日志
    bg和fg命令
    linux之sed用法
    正则表示第二行,第二列
    linux下redis安装
    Hma梳理
    linux 系统监控、诊断工具之 lsof 用法简介
    java的基本数据类型有八种
  • 原文地址:https://www.cnblogs.com/knighterrant/p/10841127.html
Copyright © 2011-2022 走看看