如果你正在對Python爬蟲蠢蠢欲動?那麼我現在帶你徹底了解它!
1. 爬蟲概述
簡單來說,爬蟲就是獲取網頁並提取和保存信息的自動化程序,下面概要介紹一下。
(1) 獲取網頁
(2) 提取信息
獲取網頁源代碼後,接下來就是分析網頁源代碼,從中提取我們想要的數據。首先,最通用的方法便是採用正則表達式提取,這是一個萬能的方法,但是在構造正則表達式時比較複雜且容易出錯。
另外,由於網頁的結構有一定的規則,所以還有一些根據網頁節點屬性、CSS選擇器或XPath來提取網頁信息的庫,如Beautiful Soup、pyquery、lxml等。使用這些庫,我們可以高效快速地從中提取網頁信息,如節點的屬性、文本值等。
提取信息是爬蟲非常重要的部分,它可以使雜亂的數據變得條理清晰,以便我們後續處理和分析數據。
(3) 保存數據
(4) 自動化程序
說到自動化程序,意思是說爬蟲可以代替人來完成這些操作。首先,我們手工當然可以提取這些信息,但是當量特別大或者想快速獲取大量數據的話,肯定還是要藉助程序。爬蟲就是代替我們來完成這份爬取工作的自動化程序,它可以在抓取過程中進行各種異常處理、錯誤重試等操作,確保爬取持續高效地運行。
2. 能抓怎樣的數據
上述內容其實都對應各自的URL,是基於HTTP或HTTPS協議的,只要是這種數據,爬蟲都可以抓取。
3. JavaScript渲染頁面
有時候,我們在用urllib或requests抓取網頁時,得到的源代碼實際和瀏覽器中看到的不一樣。
這是一個非常常見的問題。現在網頁越來越多地採用Ajax、前端模塊化工具來構建,整個網頁可能都是由JavaScript渲染出來的,也就是說原始的HTML代碼就是一個空殼,例如:
因此,使用基本HTTP請求庫得到的源代碼可能跟瀏覽器中的頁面源代碼不太一樣。對於這樣的情況,我們可以分析其後台Ajax介面,也可使用Selenium、Splash這樣的庫來實現模擬JavaScript渲染。
本節介紹了爬蟲的一些基本原理,這可以幫助我們在後面編寫爬蟲時更加得心應手。
文章來源:Python新世界著作權歸原作者所有。
鏈接:https://www.jianshu.com/p/453c422a6cb6
嵌入式、JavaEE、HTML5、安卓......多種課程免費試聽!
※屌炸天,Oracle 發布了一個全棧虛擬機 GraalVM,支持 Python!
※Python3標準庫簡介
TAG:Python |