近日,有朋友向我求助一件小事兒,他在一個短視頻app上看到一個好玩兒的段子,想下載下來,可死活找不到下載的方法。這忙我得幫,少不得就抓包分析了一下這個app,找到了視頻的下載鏈接,幫他解決了這個小問題。
因為這個事兒,勾起了我另一個念頭,這不最近一直想把python爬蟲方面的知識梳理梳理嗎,干脆借機行事,正湊著短視頻火熱的勢頭,做一個短視頻的爬蟲好了,中間用到什么知識就理一理。
我喜歡把事情說得很直白,如果恰好有初入門的朋友想了解爬蟲的技術,可以將就看看,或許對你的認識會有提升。如果有高手路過,最好能指點一二,本人不勝感激。
一、撕開爬蟲的面紗——爬蟲是什么,它能做什么
爬蟲是什么
爬蟲就是一段能夠從互聯網上高效獲取數據的程序。
我們每天都在從互聯網上獲取數據。當打開瀏覽器訪問百度的時候,我們就從百度的服務器獲取數據,當拿起手機在線聽歌的時候,我們就從某個app的服務器上獲取數據。簡單的歸納,這些過程都可以描述為:我們提交一個Request請求,服務器會返回一個Response數據,應用根據Response來渲染頁面,給我們展示數據結果。
爬蟲最核心的也是這個過程,提交Requests——〉接受Response。就這樣,很簡單,當我們在瀏覽器里打開一個頁面,看到頁面內容的時候,我們就可以說這個頁面被我們采集到了。
只不過當我們真正進行數據爬取時,一般會需要采集大量的頁面,這就需要提交許多的Requests,需要接受許多的Response。數量大了之后,就會涉及到一些比較復雜的處理,比如并發的,比如請求序列,比如去重,比如鏈接跟蹤,比如數據存儲,等等。于是,隨著問題的延伸和擴展,爬蟲就成為了一個相對獨立的技術門類。
但它的本質就是對一系列網絡請求和網絡響應的處理。
爬蟲能做什么
爬蟲的作用和目的只有一個,獲取網絡數據。我們知道,互聯網是個數據的海洋,大量的信息漂浮在其中,想把這些資源收歸己用,爬蟲是最常用的方式。特別是最近幾年大樹據挖掘技術和機器學習以及知識圖譜等技術的興盛,更是對數據提出了更大的需求。另外也有很多互聯網創業公司,在起步初期自身積累數據較少的時候,也會通過爬蟲快速獲取數據起步。
二、python爬蟲框架scrapy——爬蟲開發的利器
如果你剛剛接觸爬蟲的概念,我建議你暫時不要使用scrapy框架。或者更寬泛的說,如果你剛剛接觸某一個技術門類,我都不建議你直接使用框架,因為框架是對許多基礎技術細節的高級抽象,如果你不了解底層實現原理就直接用框架多半會讓你云里霧里迷迷糊糊。
新聞熱點
疑難解答