菜鳥怎么學做爬蟲-1


本文打算寫成一個系列,剛開始覺得我寫得比較淺,而園子里比較高端,似乎有點不搭配,於是只放在了自己的博客上,后來一想萬一有新入門的朋友想參考一下呢,於是就厚着臉皮也發在這吧。高手們請輕噴。

 

首先,說明一下我已經用python和C#完整實現了批量爬取微信公眾號歷史文章的功能,而且已經做成GUI式的軟件。雖然跟專業選手相比我深知差距巨大,但是把經驗分享出來至少能幫助到一部分新人朋友,所以抖膽寫這個話題。還是請高手們輕噴。

但是,想找我要現成源代碼的,想免費摘桃子的,抱歉了,我還指望這個賺點零花錢呢。

 

首先,想學爬蟲不是看幾篇貼子就能搞定的,也不是你朋友嘴里說的“很簡單”幾個字就能概括的,一切的一切都要從你自己的實際出發才行,比如有沒有編程基礎,一個文科生和一個過了計算機二級的理科生底子肯定是不一樣的,但即使是后者仍然也要學很多東西才能做一個能跑起來並且他自己能說得懂為啥能跑起來的爬蟲。

第一篇:爬蟲,“爬”的是什么東東。

其實“爬蟲”這個詞匯挺貼切的,就是像蜘蛛這種“蟲”一樣去“爬”取網絡上的資料,個人認為這個“爬”有兩層含義:一是指互聯網就是一個大網,我們要像蜘蛛一樣在這個網上到處去爬,到處去搜集信息。二是指單個網頁上可能有你需要的信息,我們要把這些信息從別人的網頁上抓取到自己的本地,為我所用。

所以,順着上面的兩個含義,我們要學習這兩個爬取的標的:

1、網絡:即你要怎么從一個節點開始不停得去搜索到下一個目標節點,因特網太巨大了你不可能全爬下來,所以一定要有尋找目標的策略。不過好在問題不大,因為你可以先人工百度出你想要搜集的信息范圍,或者,其實多數時候我們的爬取任務都是比較明確的,比如我要爬取微信公眾號的文章,我一定是想知道我要爬取具體哪一個公眾號的文章,而不是全網都爬(當然搜索全部公眾號的文章也有辦法),又比如我想爬取微博某個名人說過的話,那我直接去有針對性的爬取就可以了。

2、有了目標網頁,還要會分析目標網頁,而網頁是由什么構成的呢?html 代碼,加 js 和 css,多數網頁你只會 html 也行,了解 js 和 css 則更好。大概隨便找一本書或者一個在線免費網站學個三五天應該就差不多了。然后,一定要先試着自己用 html 寫幾個網頁,加深對其語法的理解。然后,才能更准確得去解析這個網頁。

OK,第一篇,先講最基礎的“概述”的第一部分,我們有的是時間,慢慢討論。

書接上文

再強調一下,你要爬什么就要先了解什么,要對網頁的呈現原理非常熟悉才可以,也許你現在還寫不出漂亮的網頁代碼,但最最起碼你看到一段源代碼要知道它是啥意思。

不能眉毛胡子一把抓看着差不多就覺得爬了再說,也不能說“我覺得這個能爬”,“我看都看到了,難道不能保存下來嗎”

以上這些,牛逼一點說,肯定能爬。現實一點說:夠你爬一壺的。

基礎牢固,事半功倍,基礎不牢,事倍功半。

至於網頁學習資料,網上太多了,就不講了,但要注意一點:不要用Dreamweaver這種拖拉式的IDE,用這玩意你就走歪路了,用記事本直接自己寫代碼才是正道,但是不推薦windows下的記事本,有bug。可以下一個免費版的 notepad++ ,不要以為我這是隨便講講,等你被坑的時候就知道該聽我的了。

學html的同時你應該自然而然得就會學到一些css相關的知識,提醒一點:css絕不是你想象的那么簡單易學的,有非常多的竅門和暗坑。我到現在都經常遇到怎么看代碼都覺得應該能正常顯示但實際看到的就是元素位置錯亂的問題。這玩意需要經驗積累,所以要虛心點學。

然后是js,最簡單的學一點吧,還是那句話:要做到也許你還不會寫,但起碼要能看懂,如果看不懂也起碼要能知道怎么去根據其中的關鍵字去百度搜索學習。

以上這些,是讓大家了解自己要抓取的標的的基本信息。所謂知敵才能克敵嘛。

但是要怎么克?那就要找到自己克敵的武器了。也就是說,你還得學一門把網頁上的內容抓取下來,然后分析和保存的語言。有很多種語言都可以實現這個功能,且基本每種語言都有一些現成的很好用的庫,最常見的是python C# java php nodejs 等等,如果你只學一門的話建議學python,因為這玩意用的人多,現成的爬蟲工具也多,你遇到問題時容易搜索到答案。

還有一個原因是:我對這個相對來說熟悉點。

再有一個原因:python 語言除了能做爬蟲幾乎能做任何其他事情。

最后一個原因:這玩意現在火呀,你還不得追追時髦啊,這樣吹牛皮時也顯得高端不是。

OK,今天先扯這么多。未完待續。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM