Python 網絡爬蟲的經常使用庫彙總

爬蟲的編程語言有很多,但 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

相關文章
相關標籤/搜索