爬蟲的編程語言有很多,但 Python 絕對是其中的主流之一。下面就爲你們介紹下 Python 在編寫網絡爬蟲經常用到的一些庫。html
請求庫:實現 HTTP 請求操做
- urllib:一系列用於操做URL的功能。
- requests:基於 urllib 編寫的,阻塞式 HTTP 請求庫,發出一個請求,一直等待服務器響應後,程序才能進行下一步處理。
- selenium:自動化測試工具。一個調用瀏覽器的 driver,經過這個庫你能夠直接調用瀏覽器完成某些操做,好比輸入驗證碼。
- aiohttp:基於 asyncio 實現的 HTTP 框架。異步操做藉助於 async/await 關鍵字,使用異步庫進行數據抓取,能夠大大提升效率。
解析庫:從網頁中提取信息
- beautifulsoup:html 和 XML 的解析,從網頁中提取信息,同時擁有強大的API和多樣解析方式。
- pyquery:jQuery 的 Python 實現,可以以 jQuery 的語法來操做解析 HTML 文檔,易用性和解析速度都很好。
- lxml:支持HTML和XML的解析,支持XPath解析方式,並且解析效率很是高。
- tesserocr:一個 OCR 庫,在遇到驗證碼(圖形驗證碼爲主)的時候,可直接用 OCR 進行識別。
存儲庫:Python 與數據庫交互
- pymysql:一個純 Python 實現的 MySQL 客戶端操做庫。
- pymongo:一個用於直接鏈接 mongodb 數據庫進行查詢操做的庫。
- redisdump:一個用於 redis 數據導入/導出的工具。基於 ruby 實現的,所以使用它,須要先安裝 Ruby。
爬蟲框架
- Scrapy:很強大的爬蟲框架,能夠知足簡單的頁面爬取(好比能夠明確獲知url pattern的狀況)。用這個框架能夠輕鬆爬下來如亞馬遜商品信息之類的數據。可是對於稍微複雜一點的頁面,如 weibo 的頁面信息,這個框架就知足不了需求了。
- Crawley:高速爬取對應網站的內容,支持關係和非關係數據庫,數據能夠導出爲 JSON、XML 等。
- Portia:可視化爬取網頁內容。
- newspaper:提取新聞、文章以及內容分析。
- python-goose:java 寫的文章提取工具。
- cola:一個分佈式爬蟲框架。項目總體設計有點糟,模塊間耦合度較高。
Web 框架庫
- flask:輕量級的 web 服務程序,簡單,易用,靈活,主要來作一些 API 服務。作代理時可能會用到。
- django:一個 web 服務器框架,提供了一個完整的後臺管理,引擎、接口等,使用它可作一個完整網站。
相關推薦:java