非計算機專業如何快速學會python爬蟲?

陳西


作為IT行業從業者,Python是我當下用的最多的語言,可以根據自己的經驗給你最靠譜的回答。首先分析一下問題,題目中有3個重點:

  1. 非計算機專業;

  2. 快速;

  3. Python爬蟲。

非計算機專業

IT行業是當下最流行的行業之一,入門比較容易,入門之後水比較深。但這行就像網上討論的那樣,工資較高,所以一大批非專業的人想從事這方面的工作。

作為計算機專業的人,我並不認為非計算機專業入行很難。現在網上教程一大堆,各種免費的電子書、IT培訓機構流出的視頻、各大在線學習網站的免費課……這些資源可以說已經“爛大街”了。所以我覺得,現在非計算機專業入行真的不難。所以題主別有顧慮,找不到相關的資料德華,關注【碼農筆記】頭條號,可以私信我,無套路,直接給。

快速

Python是一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的編程語言。說白了就是好學,再加上其強大的用法簡單的本地庫和第三方庫,使得行業外人士學習、使用起來也相當順手,無需過多瞭解計算機基礎內容即可上手編寫Python程序,所以說“快速”這個點,使用Python是相當明智的。

Python爬蟲


>>> 首先我們明確一下爬蟲的分類


爬蟲分為通用爬蟲和聚焦爬蟲。

  1. 通用爬蟲很好理解,就是大家日常使用的搜索引擎,它們通過用戶輸入的關鍵詞來進行檢索,返回的是網站的URL鏈接。這一類爬蟲遵守爬蟲協議,只是根據用戶需求對網站進行檢索。

  2. 聚焦爬蟲就是你想學的東西。不去遵守爬蟲協議,對指定網站爬取以獲取相應的數據。

>>> 接下來介紹一下爬蟲的原理


此話當從萬維網創立的目的說起,為了更好的資源共享和信息管理。隨著網絡的不斷髮展,數據越來越多,也越來越雜。互聯網上出現了大量的冗(rong)餘數據,也就是我們常見的垃圾信息。找到有用的信息越來越困難。於是乎,爬蟲應運而生,它根據一定的規則,只獲取人們想要的內容。

我們平時訪問網站的流程是這樣的:

  1. 在瀏覽器中輸入網址(URL)

  2. 進入網站,雙眼尋找並獲取對自己有用的信息

  3. 得到信息後精神、生理(斜眼笑)上得到滿足

而爬蟲就是根據這一過程進行設計,模擬人的行為對網站進行請求數據,然後將這些數據篩選,整理成有用的信息進行分析。


>>> 最後來聊一聊爬蟲的學習路徑


  1. Python語法基礎[不推薦看視頻,直接找廖雪峰的博客,看看文檔,照著例子敲敲就好];

  2. 爬蟲概念[翻翻我的CSDN:劉壞壞];

  3. 學習一下正則表達式、Xpath等常見的數據篩選方法;

  4. 瞭解常見的反爬機制[推薦CSDN:考古學家lx];

  5. 多找幾個網站,使勁兒爬。

完成以上步驟,你應該就學會爬蟲了,學習過程中會遇到其他知識點,可以深入學習,但不要偏離主線。


我是劉壞壞 不僅僅是個碼農


碼農筆記


最近剛好我也在學習爬蟲,就幾個問題我來總結一下:

1 為什麼會有爬蟲?

先舉個例子,就針對這次疫情,我想要收集一下全國各省的防疫政策,怎麼辦呢?

如果沒有爬蟲,那我只能一個個網站點過去,查看所有的政策,然後把所有的政策都下載到excel裡或其它存儲設備裡。想想這是一個多麼繁瑣的事情,而且每天都會有新的政策出臺,頭都大了,所以為了解決這個問題,爬蟲來了。


2 什麼是爬蟲?

還是上面疫情的例子,我們知道幾乎每一個疫情政策標題都對應的一個網址,我們打開網址,可以查看到對應的內容,在新的網頁中有可能又有新的鏈接,我們繼續把它點開進行查詢。

所以,我們可以寫一個程序找到所有的標題和網址,然後下載對應的內容,再去打開新網頁的網址,下載內容,由此而反反覆覆。最終由這些鏈接就組成了一個網狀結構,而我們的程序就在這個網狀結構中爬來爬去,就像一隻爬蟲一樣。


3 寫一個簡單的爬蟲要有哪些步驟?

1)明確網址。也就是說你都要從哪些網站查詢內容

2)下載內容。既然知道了url,那你就需要把它對應的內容下到本地,而網頁就是html

3)解析內容。拿到html,它本質就是一個dom樹,把你需要的數據解析出來即可。

4)保存內容。解析出來所需數據後,你就可以把它保存到文件或數據庫中了。

下圖是我繪製的一個簡單的爬蟲框架:



1)調度器負責URL管理器,網頁下載器,網頁解析器、數據存儲之間的任務派發

2)URL管理器負責訪問網頁

3)網頁下載器負責下載html

4)網頁解析器負責解析html,並把有價值的數據交給存儲器存儲

你完全可以根據上面的框架,寫一個簡單的爬蟲。


如果你嫌費事,當然可以瞭解下scrapy,webmagic等爬蟲框架,基本原理和這個框架都差不多。


再往後面的學習,就看你的實際需求,你可能會遇到登錄,驗證碼,動態頁面,服務器反爬,甚至分佈式部署的問題,這就要根據你實際需求一點一點去學啦。


小豆君編程分享


從0開始學習python爬蟲,大致可以分為以下幾個階段:

1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法等,基礎過的很快,基本上1~2周時間就能過完了,我當時是在這兒看的基礎:Python 簡介 | 菜鳥教程,百度直接搜索菜鳥教程,或者是廖雪峰python都有基礎課程。

2.看完基礎後,就是做一些小項目鞏固基礎,比方說:做一個終端計算器,如果實在找不到什麼練手項目,可以在 Codecademy - learn to code, interactively, for free 上面進行練習。

3.如果時間充裕的話可以買一本講Python基礎的書籍比如《Python編程》,閱讀這些書籍,在鞏固一遍基礎的同時你會發現自己諸多沒有學習到的邊邊角角,這一步是對自己基礎知識的補充。

4.Python庫是Python的精華所在,可以說Python庫組成並且造就了Python,Python庫是Python開發者的利器,所以學習Python庫就顯得尤為重要:The Python Standard Library ,Python庫很多,如果你沒有時間全部看完,不妨學習一遍常用的Python庫:Python常用庫

5.Python庫是開發者利器,用這些庫你可以做很多很多東西,最常見的網絡爬蟲、自然語言處理、圖像識別等等,這些領域都有很強大的Python庫做支持,所以當你學了Python庫之後,一定要第一時間進行練習。

6.學習使用了這些Python庫,此時的你應該是對Python十分滿意,也十分激動能遇到這樣的語言,就是這個時候不妨開始學習Python數據結構與算法,Python設計模式,這是你進一步學習的一個重要步驟:faif/python-patterns

7.當度過艱難的第六步,此時選擇你要研究的方向,如果你想做後端開發,不妨研究研究Django,再往後,就是你自己自由發揮了。

寫一些簡單的爬蟲,比如抓取一些網頁數據,學習一個月我覺得是可以的。當然這是很基礎的一些操作。


文一恆成長記


我來講一下我學python爬蟲時間吧。前年我接觸python是因為我們從深圳那邊接手了一個項目。項目內容就是進行微服務可靠性驗證,說白了就是測服務器的穩定性。你服務部署到一臺執行機後,我給你的服務器進行cpu故障注入,內存故障注入等隨機因子,然後再去反覆的調用服務接口,來測試故障注入後業務的穩定性恢復時長等,要實現這麼一個流程,就用到了python+robotframework框架。

我花了2天學習python基礎語法,三天學習框架,然後經過兩個小時的工作交接,這個執行機這一塊的任務就算是給我了,所以,學習主要是專注,還有就是被逼的。

後來承接了這一塊業務後,我逐步就完善了python學習。後來覺得selenium框架用起來也很方便,我就嘗試用selenium來替代robotframework。但是沒有成功,工作量太大了,不過學會selenium。這一個技能讓我這兩年工作中節省了很多時間。

給你提個學習路徑你可以參考。

先學python基礎語法,大概學完數據類型,邏輯操作,就差不多了,然後直接去爬百度,爬知乎,爬頭條,給自己定一個目標,直接搜源代碼,讀別人的代碼,然後修改代碼。這樣的速度是最快的。唯一的缺點是很多的地方是知其然不知其所以然。不過這些問題都會在你今後的實踐過程中學習到。

這也是我快速學習一門語言的法門。畢竟在工作中,公司不會給你那麼多的時間來進行系統的學習,公司需要的是結果。


蜜蜂攻城獅


一、作為初學者,應該如何學python?

很多人對python縮進試的簡潔表達不以為然。那些都是已混跡於C和JAVA的老鳥已經習慣了花括號。對於初學者,python語言是最好寫,最好讀的。

二、追求生產力,應該學python

python是全能語言,社區龐大,有太多的庫和框架。你只需要找到合適的工具來實現想法,省去了造輪子的精力。

coder可以寫儘可能少的代碼來實現同等的功能。“人生苦短,我用python”是至理名言。

如果實現一箇中等業務複雜度的項目,在相同的時間要求內,用java實現要4-5個碼農的話,用python實現也許只需要1個。這就是python最大的優勢了。

三、那麼應該如何入門python呢

看書學編輯是效率最低的事情。且不說書的內容基本過時。就是比較較的翻譯也很晦澀,照書寫了代碼跑不通,不斷報錯。是很打擊學習積極性的。

不過,介紹語法的基礎書,還是可以買一本,作為手冊查閱之用。這類基礎書籍買一本就好,找個週末休息時間,一天便可看完。

四、那麼應該如何進階python呢

對python語言有一個全面的瞭解之後,就可以進階了。怎麼進階,很簡單,找一個你喜歡的領域直接做項目。做WEB網站,做爬蟲,都可以的。

首先要找容易上手的教程。網上有SET BY SET這種文字型 教程 ,這種只能做相對簡單的項目,如果是複雜一點的是效率那是讓人無法忍受的。而且文字教程由於有時效性問題,或是教程本身細節的一些錯誤,會讓人抓狂的。

最好的學習教程,其實就是現在淘寶上販賣的項目視頻教程。這類教程有很多,但是魚龍混雜,很難去偽存真。當然也有很多技術網站提供官方教程 。比如51cto,極客,慕課,麥子等等,實在是太多太多,價格雖然也不是很貴,但一個課程也是幾百塊。比如要對WEB開發領域有一個全面的學習,僅一套課程是遠遠不夠的。

最後,一定要堅持!每天堅持進步一點點,最後都會變成巨大的收穫。


Ledy


直接在Linux系統裡面Scrapy框架,然後想一個項目:這個項目可以將一個網站的內容爬下來








Charles莫比嗨客MbhAi


學以致用!

先想好學了要幹啥!



冷眼旁觀我這一輩子


對於爬蟲初學者,建議先下載八爪魚爬蟲軟件感受一下網絡爬數據的基本原理。再去學習python語言的request庫,有利於快速入門。


IT資源先峰


兩種方法:一 自學的話 肯定是要找系統的資料來學,然後還要找一個群或者前輩的朋友一起討論學,如果沒有資料的話 我可以給你! 二 培訓的話,肯定是選擇好的面授培訓班最好,這樣也有老師教!還要一起學的同學


全階魔方


作為初學者,找一個網上視頻教程,找一個老師可以解答疑惑,學習起來肯定快。有什麼問題可以請教。作為非計算機專業不建議一個人學習,爬蟲簡單的很好做,如果有反爬機制,是要自己有解決的能力,涉及的知識就比較多,前端後端都要至少懂點。


分享到:


相關文章: