python學習爬蟲,不會前端和全棧可以嗎?為何?

印度行萬里歸來顏愈少


我認為是需要學習的,做爬蟲除了需要了解 python 自身的基礎,還需要了解 HTTP 的基礎知識,對全棧的瞭解是跑不了的。我們從靜態頁面的抓取到動態生成內容的抓取,web 前端全家桶(尤其是 DOM)也是需要的。此外需不需進一步控制瀏覽器呢,selenium,CDP (Chrome Devtools Protocol) 各路神仙一招呼,這些更是 web 前端和 HTTP 和網絡的深度結合。


磚加號


很高興回答你的問題。要回答這個問題,我們首先我們得先明白另外一個問題。

什麼是全棧工程師?

廣義上的全棧工程師包括的是大前端(Web、App等)、後端(視技術棧而定的Java、php等)、運維,集整個常見工種於一體的工種。

但是發展到了現在,很多人把會Web前端和後端的人員稱為全棧,其實我更願意稱之為「偽全棧」。

弄懂了全棧的含義其實就不會存在題中的「前端和全棧」這種叫法了。

然後我們再來說說學習python爬蟲需要學習寫什麼了。情況得分為兩種來討論。

一、有一定開發基礎的學習人員

如果你已經有了一定的開發基礎。你需要學習以下知識。

  1. python:你想要學習python爬蟲,你首先得會python。python爬蟲,只是python應用的一個分支。

  2. 數據庫:爬蟲抓取下來的東西,總得有地方存儲吧,存儲就得用到數據庫。

  3. 前端:包括html、css、js等。爬蟲分為直接爬取頁面、爬取接口、使用仿瀏覽器庫進行爬取。無論哪種方法,都是從前端出發,需要了解你爬取的數據從哪兒來,展示在哪兒。這些都需要用到前端知識,所以前端是一個繞不去的坎兒。

  4. 各種反爬知識:<strong>現在各大網站都採取了各種各樣的反爬機制。包括但不僅限於IP訪問次數限制、自定義加密自己、驗證碼、Cookie驗證等等。反爬策略一直在升級,可能你今天寫的爬蟲,明天網站就升級反爬策略了,所以一個爬蟲需要不斷的投入精力進行維護、升級。

二、零基礎的學習人員

針對零基礎的學習人員,除了和有開發基礎的學習人員學習的一樣以外,還需要學習計算機編程的通用知識。包括但不僅限於:計算機網絡、數據結構、算法等。


Java面典


全棧只是個概念 也分很多種類 真正的全棧工程師涵蓋了web開發 DBA 爬蟲 測試 運維,要學的內容那是相當的巨量。就web開發方向而言需要學習的內容:前端知識 包括HTML5 CSS3 JS Jquery Ajax,後端至少需要能夠熟練使用 Django和tornado 當然會flask更好

Python全棧工程師是比較受歡迎的一類人才,本身Python語言具備全端開發的能力,所以Python的全棧工程師也比較多。

對於Python全棧工程師來說,需要掌握以下知識結構:

第一,Python語言基本語法。Python語言的基本語法掌握起來並不困難,甚至可以說非常簡單,因為Python是腳本語言,所以語法也比較直接

第二,Python做Web開發。

Python是Web開發的傳統三大解決方案之一(還包括Java和PHP),Web開發是全棧工程師必須掌握的內容。用Python做Web開發需要學習對應的框架,比如Django。

第三,Python做數據分析。Python做數據分析是一個比較常見的應用場景,Python做數據分析需要學習對應的算法以及實現過程。會使用到的庫包括Numpy、matplotlib等。

第四,Python做爬蟲。Python做爬蟲應用是一個非常常見的應用,有大量的案例可以參考。

第五,Python做機器學習類應用。Python目前在機器學習領域(人工智能相關)的應用非常普遍,所以對於Python全棧工程師來說,掌握機器學習相關的內容也是有必要的。需要掌握的算法包括決策樹、樸素貝葉斯、迴歸、kNN分類等,同時需要掌握基本的線性代數和概率論相關知識。

當然python也有它的不足之處,就是慢,比C、C++、java都慢,這一點是限制它的一點,因為在不少領域對語言的運行速度都有極致的要求,你比如說導彈攔截程序,分秒必爭,顯然python在第一步就會被pass掉。但是對於其它領域,你比如說橋樑參數的運算,我相信20分鐘和18分鐘它差不了多少。第二點就站在功利的角度來談了,就是目前計算機等級考試中沒有python這個選項,當然我相信10年之後,或許是5年,我們就可以拿到python的計算機等級證書啦。


路西法李


你好,Python爬蟲與前端後端都有一定的知識相關。但是不必專門去學習這方面內容。

Python爬蟲可以直接通過讀兩本相關書籍就開始上手了。

一般爬蟲會涉及到,數據採集,數據清洗,數據存儲,數據展示等。

如果說涉及前端部分的內容就是數據展示部分。將你爬去的數據進行展示在網頁中讓人直觀的看,但是在Python中會有相同的庫作為替換,所以你可以不用學習前端知識也能完成這個目的。

如果說涉及後端部分的內容就是數據的存儲,把你當爬蟲數據存儲到數據庫中。這一步,你也可以有替代方案,把數據存儲在txt文件中,excel文件中都是可以的。這樣你就不用花費時間專研數據庫等後端知識。

最後,數據採集部分,會涉及一些網絡知識,但是由於現在的Python第三方庫已經很成熟,你很多隻要查看文檔理解如何用即可,初期不用探究底層原理。也能夠完成你的數據採集工作。

數據清洗,就是通過Python變成語言來進行操作,找到你需要的內容,這部分就是主要你來完成和學習的編程內容了。


鏈求君


這個問題其實可以定位為一個領域相關的問題。

上面的問題可以轉化為不瞭解前端方向和服務端方向的知識,可以學習網絡數據抓取方向相關的知識麼?


答案是可以的。


圖1


可以將上述領域的知識相關性抽象成圖1。幾個領域之間只有小部分交集,並且它們之間沒有必然的先後關係。舉例來解釋這裡的先後關係,例如前端並不是網絡抓取方向的基礎知識。所以學習網絡抓取領域的知識並不需要先學前端。

  • 在學習過程中,可以先將網絡抓取相關的知識列舉出來,整理出一條學習路線,然後按照整理的路線學習就可以了,學習過程中注意多實踐。

  • 對於學習中需要解決兩個問題,一個是深入理解,第二個是增加相關知識提取能力,這兩點都可以通過實踐來加強。
  • 如果學習中遇到其它領域的知識,可以進行一些瞭解,然後回到主路線繼續學習。

城東的花開了


首先要明確一點,python只不過是一個工具,學會了使用工具不代表你就能找到工作,要有用工具處理問題的能力才符合工作需求!就像爬蟲工程師,java也能實現,想要靠你學的python找到工作,實踐經驗才是加分項!

回到問題,針對python的面試一般會涉及到下面幾個部分:

一、python基礎知識

爬蟲給人的感覺就是對於Python編程的知識要求並不高,確實,搞懂基本數據結構、語句,會寫寫函數好 像就OK了。

自己業餘玩玩還OK,如果你要找工作成功爬蟲工程師,紮實的編程基礎是必不可少的。除了基本的函數,Python的高級特性、面向對象編程、多線程、裝飾器都要熟悉。

現在很多爬蟲工程師的面試,對編程的基本功要求很高。編程的功底,以及對語言的理解,從某種程度上可以看出你的學習能力、發展潛力。 比如: Python2.x與Python3.x的區別 Python的裝飾器 Python的異步 Python的一些常用內置庫、多線程......

二、數據結構與算法

數據結構與算法是對面試者尤其是校招生面試的一個很重要的點,小公司可能不太在意。 從目前的招聘情況來看:重視數據結構與算法的重視程度與企業的好壞成正比。

三、Python爬蟲

會爬蟲和爬蟲厲害是兩碼事,你要有Python爬蟲相關的知識與經驗儲備,這通常也是面試官考察的重點。

包括但不限於: 你用過多線程和異步嗎?除此之外你還用過什麼方法來提高爬蟲效率? 有沒有做過增量式抓取? 對Python爬蟲框架是否有了解?

一般來說,你需要掌握的技術有下面幾個:

HTTP必須要有很深刻的理解,這是你縱橫網絡的立身之本;

BeautifulSoup、xpath這些都是基礎操作了,一定要做到非常熟練;

Scrapy框架要會用,要能信手捏來寫個分佈式爬蟲;

Webdriver、Selenium、PhantomJS也要會使用;

四、爬蟲相關的項目經驗

爬蟲重在實踐,除了理論知識之外,面試官更在乎: 你做過哪些爬蟲項目?如果有Github最好 你認為你做的最好的爬蟲項目是哪個?其中解決了什麼難題?有什麼特別之處? 以上是我在面試過程中,會碰到的一些技術相關的問題的總結,當然面試中不光是技術這一點,但是對於做技術的,過了技術面基本上就是薪資問題了。

五、面試經

初級:

網絡基礎:cookie,session,https,h


兩個蘋果的世界


JAVA5年老鳥,Python熟悉

Python爬蟲就是獲取書局 捷信數據(包含解析html網頁)

所以 前端會的話才是一個合格的Python爬蟲工程師 不然遇到html頁面數據束手無策。解析數據能入庫就更好啦,那麼數據庫知識有助於你存儲。

總結一下,學習爬蟲前端必須要學一下,全棧不必要,會的話更好[來看我]




閉著眼睛切土豆


如果你想深入學習爬蟲,那你肯定繞不過前端的知識,html+css+javascript更是其中的基礎知識了。

不過話說回來,你如果僅僅是想學習爬蟲拿來用,也不一定要系統地去學這些東西。有個名詞叫“學以致用”,你可以直接通過搜索“python爬蟲入門”,你就可以短時間學會簡單的爬蟲了。

但是長遠來說,你現在學會的這點小技巧,你是沒有辦法更靈活地使用爬蟲來滿足自己的需求的。

爬蟲

爬蟲爬的究竟是什麼?通俗地說就是用編程的方式,讓計算機代替我們收集數據,其中爬的便是我們想要得到的公開數據。

一般來說,只要是通過瀏覽器看到的信息都是可爬的,但是這其中會涉及到一些技術和法律上的問題。

比如技術上,你想爬蟲,平臺會有反爬手段,如果判定你頻繁爬取信息,那你通過此IP將無法正常訪問信息。其中的IP、瀏覽器頭信息、referer等技術手段,用得好的話都可以讓無蟲可爬。

法律上,如果你爬取非公開數據,或者你高頻爬取導致平臺服務出現問題的,你很可能要到某個地方呆上一段時間。這個其實也可以理解,人家辛苦呈現的數據,被你反手一爬就爬完了,平臺不是很冤嗎?

所以爬蟲有風險,下手需謹慎。

前端

前端是現在互聯網內容服務中不可或缺的一員,它擔當了直接與用戶交互的所有內容。

一般來說,IT開發主要分為兩個端,一個是前端,另一個則是後端了。

後端負責業務邏輯,前端負責頁面交互。

由於爬蟲主要是爬取顯示出來的東西,所以要學習的內容更多是前端這一塊,比如頁面是由什麼組成?頁面是怎麼交互的?數據是從哪個接口取的?

入門爬蟲

如果是選擇用python爬蟲,那麼scrapy框架將非常適合。

這個框架可以讓你快速學會怎麼爬蟲,並且也很容易擴展功能來滿足其它的需求。


小白踐行


爬蟲它本質就是利用程序模擬各種網絡請求然後獲取網頁裡面的信息。所以如果看不懂網頁源碼是無法做好一個爬蟲的。建議學一點點前端,做到能看懂前端網頁源碼即可。不用深學前端。Python這塊不要造輪子,可以用許多爬蟲包。網上有很多博客,可以找一個博客然後實踐。不動手肯定會覺得非常難,事實上動手做一個爬蟲後就會知道並不難。


Ai醬AI學習


要寫爬蟲,就需要會前端,你不寫前端不要緊,但至少要會看,能看懂前端代碼。


分享到:


相關文章: