Python使用aiohttp异步爬取糗事百科
生活随笔
收集整理的這篇文章主要介紹了
Python使用aiohttp异步爬取糗事百科
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from bs4 import BeautifulSoup
import aiohttp # 代替requests
import asyncio
from urllib import parseheaders={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36','Referer': 'https://www.qiushibaike.com/'
}async def getPage(i):print('i的值為:',i)url='https://www.qiushibaike.com/8hr/page/{}/'.format(i)async with aiohttp.ClientSession(headers=headers) as session:async with session.get(url) as resp:print(resp.status) # 打印狀態碼print('第{}頁'.format(i))html=await resp.text()soup=BeautifulSoup(html,'lxml')lis=soup.select('.recmd-content')for li in lis:title=li.get_text()href=parse.urljoin('https://www.qiushibaike.com/',li['href'])print(title)print(href)if __name__ == '__main__':loop=asyncio.get_event_loop() # 獲取事件循環tasks=[getPage(i) for i in range(1,11)] # 創建任務loop.run_until_complete(asyncio.wait(tasks)) # 執行任務loop.close() # 執行之后關閉
?
總結
以上是生活随笔為你收集整理的Python使用aiohttp异步爬取糗事百科的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python多进程之构建进程池
- 下一篇: Python异步爬取知乎热榜