Python爬蟲怎麼入門-初級篇

王平發表於2018-12-10

經常有同學問老猿Python爬蟲該怎麼入門,不知道從何學起,網上的文章寫了一大堆要掌握的知識,讓人更加迷惑。

我也瀏覽了下網上關於怎麼Python爬蟲入門的文章,發現有的還在教人用urllib來傳送http請求,這真是有點誤人子弟了。本文也不提倡剛開始去學習第三方爬蟲框架,老猿想把要學習的知識簡化一些,讓入門更快速,更專注。

python爬蟲怎麼入門

Python爬蟲入門:技能

真要說Python爬蟲需要具備什麼知識,那就是你得會Python,哈哈。

其他的知識就是你能熟練運用Python的幾個第三方庫,當然你具備一點html javascript css http協議 可以提高你的解決問題的效率,但這是一篇入門文章,我們不再這裡討論。

為什麼老猿要這樣說呢?先來說說爬蟲是怎麼一會事。

Python爬蟲入門:爬蟲流程

爬蟲程式的完整流程是:
1.通過網路程式設計把網站上的網頁請求下來;
2.對這些網頁做資料抽取;
3.把抽取出來的資料存進資料庫(或檔案)裡。
4.迴圈重複上述步驟,為了抓取大量網頁。

下面對上述4個步驟做詳細說明:
步驟1:怎麼把網頁請求下來,你就使用 Python requests 庫好了。requests庫強大而簡潔,他能幫你把網站上的網頁請求下來。
步驟2:對請求下來的網頁做資料抽取的方式很多。比如用lxml,xpath,BeautifulSoup這些Python庫,我這裡對初學者推薦用正則式re庫,因為lxml,xpath那些的學習時間要長一點,而且對html要有點概念。你先學習下怎麼寫正規表示式來抽取網頁裡的資料。
步驟3:這很簡單,你是練習的話,你就先把抽取的資料寫進檔案就好了。
步驟4:這是程式的設計邏輯問題,其實跟爬蟲本身不相關,要能迴圈重複上面的步驟,最簡單就是寫一個迴圈語句是吧。

一個爬蟲程式其實就是由上述幾個動作構成的,大量抓取網頁—>對抓取的網頁結構化—->把結構化的資料存進資料庫—>重複上述步驟。
我們會在4個動作上加入大量的程式碼(這些程式碼可能是你自己寫的,也可能是運用第三方Python庫來輔助寫的),其目的就是保證上述四個動作穩定,高效,精準。

比如要保證步驟1的穩定抓取,你要對requests庫的請求做容錯處理,記錄已經抓取的URL,防止重抓取,研究http header和對方網站的訪問頻率控制策略來降低你的爬蟲被遮蔽的概率。
比如要保證步驟2結構化資料的準確度,你就要用chrome瀏覽器去抓包,用正規表示式re庫久了,就會想要試著用下lxml,xpath看看解析網頁是否更快速,更準確等。
比如步驟4,等你想要大量高效率抓取網頁時,你可能會想試著把程式改成非同步IO,或者多執行緒等。

以上就會讓一個原本只有幾十行程式碼的爬蟲程式,膨脹到上百行,過千行程式碼,我們稱之為較為高可用,高效率的爬蟲程式。

Python爬蟲入門:多動手練熟練

在實踐中提高Python爬蟲技能
我建議作為初學者,尤其如果你的Python又還不太熟悉時,你就從最簡單爬蟲開始寫起,你用這個程式去抓取網頁,在這個抓取網頁的過程中,你會遇到形形色色的網路問題,網頁解析問題,被遮蔽問題,各種報錯,遇到問題就善用搜尋引擎,去搜尋解決方法,在解決這些問題的過程中,你的知識就在鞏固和提高,你對爬蟲的認知也在提高,這個時候你自己就會想有沒有第三方Pyhton庫可以來解決這些問題,自己是不是還有些知識點欠缺,這個時候你再反過來去學習相關知識點,這時候你的接受程度和理解程度就快速和容易很多。

總結一下:
作為初學者,你先學習python requests庫和re正則表達庫後,就開始寫爬蟲吧,多動手擼碼比什麼都重要。
PS:python requests 運用熟練了,你就已能寫出一個有用處的爬蟲了。

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章