1. 程式人生 > 程式設計 >python爬蟲要用到的庫總結

python爬蟲要用到的庫總結

python爬蟲要用到的庫:

請求庫:實現 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 伺服器框架,提供了一個完整的後臺管理,引擎、介面等,使用它可做一個完整網站。

觀點擴充套件:

學習爬蟲,最初的操作便是模擬瀏覽器向伺服器發出請求,那麼我們需要從哪個地方開始做起呢?請求需要我們自己來構造嗎?需要關心請求這個資料結構的實現嘛?需要了解HTTP、TCP、IP層的網路傳輸通訊嗎?需要直到伺服器的響應和應答原理嗎?

可能你對這些根本不瞭解,也沒辦法下手。但是沒關係,python為我們提供了功能齊全的類庫來幫助我們完成這些請求。最基礎的HTTP庫有urllib、requests、treq等。

以urllib為例,有了它,我們只需要關心請求的連線是什麼。需要傳的引數是什麼,以及如何設定可選的請求頭就好了,不用深入到底層去了解它到底是怎樣傳輸和通訊的。有了它,兩行程式碼就可以完成一個請求和相應的處理過程,得到網頁內容,是不是感覺方便極了?

以上就是python爬蟲要用到的庫總結的詳細內容,更多關於python爬蟲要用到哪些庫的資料請關注我們其它相關文章!