之前介紹的requests庫是一個阻塞式HTTP請求庫,當我們發出一個請求后,程序會一直等待服務器響應,知道得到響應后,程序才會進行下一步處理。其實,這個過程比較耗時。如果程序可以在這個等待過程中做一些其他的事情,如進行請求的調度、響應的處理等,那么爬去效率一定會大大提高。
aiohttp就是這樣一個提供異步web服務的庫,從python3.5版本開始,python中加入了async/await關鍵字,使得回調的寫法更加直觀和人性化。aiohttp的異步操作借助於async/await關鍵字的寫法變得更加簡潔,架構更加清晰。使用異步請求庫進行數據抓取時,會大大提高效率,下面我們來看一下這個庫的安裝方法。
1、相關鏈接
官網文檔:http://aiohttp.readthedocs.io/en/stable
Github: http://github.com/aio-libs/aiohttp
PyPI: https://pypi.python.org/pypi/aiohttp
2、pip安裝
pip3 install aiohttp
另外,官方還推薦安裝如下兩個庫:一個是字符編碼檢測庫cchardet,另一個是加速DNS的解析庫aiodns。安裝命令如下:
pip3 install cchardet aiodns
3、安裝測試
安裝完成之后,可以在python命令行下測試:
$ python3
>>> import aiohttp
如果沒有報錯,則證明庫已經安裝好了。