天天看點

爬蟲工程師

畢竟大資料行業在國内興起也就這幾年,而爬蟲工程師也由此從幕後走向台前,不清楚整個大行業的話,其實隻能看到很片面的價值。

回憶這幾年帶團隊的過程,還有團隊的發展,有些同學片面低估爬蟲工程師的價值,也有些同學盲目高看自已。這篇文章就說說我的想法,希望能讓大家更了解這一行的一些工作,希望對大家是有所幫助的。

關于爬蟲的話,面試的問題其實都差不多。我羅列一下:

  • 自我介紹。我發現厲害的面試官一般都不會要你做自我介紹,而要你自我介紹的其實隻是需要幾分鐘看看你的履歷。至于面試官厲不厲害,其實看他問問題的角度就能看出來了。
  • 項目中遇到最難的地方?是怎麼解決的?
  • 詳細問你某個項目的過程。是以你需要很了解你自己做的項目。我被問到最多的是關于淘寶UA值的計算過程,似乎大家都對淘寶很感興趣。
  • HTTP的三次握手和四次揮手。這個是個高頻,我被問了好幾次。
  • 程序、線程和協程。
  • 如何設計一個爬蟲。
  • 常見的反爬機制有哪些,每種機制的應對方案。這個也是個高頻。
  • 如何提高小組的代碼品質?我答的是peer review。
  • 常見的去重政策和存儲方案。
  • 用過哪些爬蟲架構。

基本就這些,可以看到,我很少會被問到隻和Python相關的問題(隻有一次,問了list和tuple的差別)。但是去研究下Python,總沒什麼壞處。另外一些可能的加分項:

  • 技術部落格,github
  • 英語
爬蟲工程師

什麼是爬蟲工程師

簡單定義爬蟲工程師就是通過相關的網際網路技術或工具,擷取網站或相關應用公開可見資料的工程師。由于網際網路許多資料都是公開的,可以通過寫程式或使用工具,摸拟請求,擷取到目标網站傳回的資料,然後通過相關技術或手段,将資料結構化儲存下來。

比如我們可以通過爬蟲擷取大衆點評的餐飲資料

比如我們可以通過爬蟲擷取百度地圖的資料

比如我們可以通過爬蟲擷取豆瓣上的影評資料

爬蟲工程師需要掌握什麼技能

筆者曾經見過一副圖,基本也把一個爬蟲工程師會遇到的事情給說個遍,大家可以看一下

爬蟲工程師

坦白說,這些知識點,都是建立在爬蟲擷取資料的基礎之上。而爬蟲擷取資料就兩種方式,一種就是自已寫代碼,一種就是用爬蟲工具。

1.代碼方向

通過寫代碼擷取資料,基本任意一款主流的代碼語言,其實都是有網絡通訊包可以來做爬蟲,無論是主流的python,還是java,還是c#都有,這裡面隻是由于python用的人比較多,有一些庫都封裝好,效率也高,是以用的人比較多(很多大資料團隊都在用python,是以就跟着用)。

通過代碼的達到精通需要以下幾個環節

1.熟悉任意一款語言,并達到可編寫任意功能性代碼的能力

2.熟悉HTTP協定,其實就是一個GET,一個POST,頂多帶上一個cookie

2.工具方向

這個就很好了解,精通某一款主流的采集工具,比如說我們八爪魚采集器

需要精通到什麼程度?

1.如果你會用我們八爪魚與XPATH,定位網頁任意元素

2.如果你知道如何八爪魚采集原理,懂得拆分規則,讓整個采集效率翻10倍

3.其實沒有天天使用我們八爪魚超過三個月以上,寫過一兩百個規則的,都不應該算精通吧

除以上兩個工具層面熟悉外,還需要熟悉以下東西:

1.防采集原理(驗證碼,多IP等)

2.html前端解析知識

3.分布式解決方案

4.正規表達式比對

基本上熟悉掌握了以上這些技能,也差不多能成為一名合格,思路清晰的爬蟲工程師了。寫代碼的有寫代碼的好處,用工具有用工具的好處,寫代碼的好處在于自由度比較大,挑戰比較大,入門比較難,而且作用其實不大,因為很多時候其實是在重複造輪子。

畢竟很多通用性的動作都是可以用爬蟲工具完成的,功能爬蟲工具都幫你做好了,你隻要會用就行。而工具呢,工具始終有一點點局限性,工具為了通用性,在一定程度是犧牲了某些功能的,在一些很特殊的場景,工具其實很難完成。

是以我一向的推薦就是,工具+代碼,才是一個現在主流的爬蟲工程師的配置。你可以使用工具,比如我們八爪魚,實作那99%的需求,但如果遇到特定的,自已留一手寫代碼解決,也是無妨的。

畢竟我們要的是解決問題,更别說python等等,配置個爬蟲程式一點都不難,網上教程一大把。(國内主流采集大神都是這麼做,能用工具的優先用工具,除非工具搞不定,才自已碼代碼)

爬蟲工程師的關聯技能

除了需要懂采集外,爬蟲工程師還需要一些其他的技能,這才是真正衡量一名爬蟲工程師是入門,還是普通,還是優秀的标準。其實在現在這個時代,複合型人才都是比較吃香的。

一個優秀的爬蟲工程師,他還需要以下幾項技術進行升華

爬蟲工程師

1.資料清洗

因為采集下來的資料,很多時候都是一大段文本,你需要對文本進行提煉,也就是我們說的對資料進行清洗,才能得到更加幹淨的結構化資料,儲存在資料庫裡面。

有時候我們采集多份資料,也需要通過清洗進行關聯。這裡面比如我們擅于使用Excel的一些進階技巧,也包括會使用R等程式語言,對文本進行處理。在我們八爪魚資料中心團隊的同學,都具備資料清洗的技能。

2.資料挖掘

爬蟲後的資料挖掘,一般是指NLP這鬼東西。NLP是屬于人工智能範籌的,中文叫自然語言處理,簡單了解就是處理大量文本,從大量文本裡面挖掘出價值的一個東西。

在國内能做好的,都是屬于鳳毛鱗角的,我們八爪魚也有我們自已的NLP團隊,投入相當巨大,還沒做得特别出色,僅僅開始實作一些特定場景功能,能做一些單子了。我們為國内一些主流的AI公司,采集并挖掘後,輸出AI資料。我們的資料中心就有牛人專門幹這個的。

3.資料分析可視化

僅僅隻是将資料采集下來,儲存在資料庫裡面,僅僅隻是實作第一步的價值。資料分析與可視化,才是資料背後更大的價值。

是以需要對資料儲存進資料庫,然後通過相應的架構或程式開發,組織調用出來,輔助企業進行決策。是以我們八爪魚有專門的資料BI團隊,也有很多爬蟲工程師善于使用EXCEL,一般可視化BI工具,為項目提供可視化資料支援。

4.深刻了解業務

無論是對網際網路公開資料的擷取能力的了解,還是對業務需求的了解,也是考量一個優秀的爬蟲工程師的重要衡量标準,說白了就是,不僅要懂技術,而且要懂業務,成為複合型的爬蟲工程師。能到這個程度,才能将爬蟲工程師的價值無限放大。比如了解風控業務,比如了解AI業務等。這個崗位我們有售前,有顧問等。

如何規劃爬蟲工程師的路線

在我的團隊裡面,是有L崗與T崗這兩個路線的,L崗一般是指偏業務的爬蟲工程師的崗位,T崗一般是指偏技術的爬蟲工程師崗位,這跟人的性格有關,一些同學更喜歡靠近業務,表達能力好,反應快思路清晰,他就會往L崗走,一些同學更偏向技術,狂熱于突破各種難題,輸出更好的解決方案,他就會往T崗走。

L崗一般有什麼職位

1.技術支援(中小客戶方向)

2.售前(大客戶方向)

3.資料中心Leader/項目Leader

4.方案顧問(深入業務場景)

T崗一般有什麼職位

1.爬蟲項目一線開發傳遞人員

2.資料專員

3.進階資料專員

4.爬蟲教育訓練講師

月薪45K的Python爬蟲工程師告訴你爬蟲應該怎麼學,太詳細了!

想用Python做爬蟲,而你卻還不會Python的話,那麼這些入門基礎知識必不可少。很多小夥伴,特别是在學校的學生,接觸到爬蟲之後就感覺這個好厲害的樣子,我要學。但是卻完全不知道從何開始,很迷茫,學的也很雜,下面就跟着小編一起來看看想用python來做爬蟲到底需要學習哪些知識吧!

爬蟲工程師

Python入門

1、基本知識、資料類型、流程控制。

爬蟲工程師

人生苦短,快用Python

2、函數

爬蟲工程師

人生苦短,隻用Python

3、用子產品

爬蟲工程師

4、I/O基礎

爬蟲工程師

人生不短,也用Python

5、Linux基礎

爬蟲工程師

Linux基礎

最後包管理和虛拟環境都要有所了解,怎麼樣,這些基礎你都會了嘛!

爬蟲工程師

web前端

當然光學了基礎是遠遠不夠的,我們要深入做爬蟲,首先得了解這個東西是怎麼做的了解清楚它的原理,那麼web前端方面的學習是必不可少的,下面我們來了解一下。

1、标簽

爬蟲工程師

标簽

2、樣式

爬蟲工程師

樣式

3、JS文法

爬蟲工程師

JS文法

4、jQuery

爬蟲工程師

jQuery

5、Ajax

爬蟲工程師

Ajax

6、bootstrap

爬蟲工程師

bootstrap

前端部分不用涉及太深,隻是學爬蟲的話這些就完全夠用了,俗話說“工欲善其事,必先利其器”,是以我們再把下面這些Python知識學完後,就可以毫無後顧之憂的來學習爬蟲了。

爬蟲工程師

Python進階

1、面向對象

爬蟲工程師

面向對象

2、裝飾器、惰性器

爬蟲工程師

裝飾器、惰性器

3、進階子產品

爬蟲工程師

進階子產品

4、 并發程式設計(多線程與多程序)

爬蟲工程師

什麼是程序、線程

爬蟲工程師

多程序

爬蟲工程師

多線程

爬蟲工程師

Future實作多程序、多線程

5、并發程式設計(協程、異步IO)

爬蟲工程師

協程、異步IO

好了,這些東西全部學會以後,就可以進行正式的爬蟲學習了,在之後的學習路途中很多東西一看到就胸有成竹,想皮都皮不起來。

爬蟲工程師

爬蟲基礎

學習爬蟲,我們首先要了解什麼是爬蟲以及它的工作流程,知己知彼,方能百戰百勝嘛。當然這些大家都知道的,廢話不多說,先來看看爬蟲基礎知識點。

1、請求與響應

爬蟲工程師

請求與響應

2、爬蟲與反爬蟲

爬蟲工程師

爬蟲與反爬蟲

3、開發工具

爬蟲工程師

開發工具

4、Urllib庫使用詳解與項目實戰

爬蟲工程師

Urllib庫使用詳解與項目實戰

5、requests庫安裝使用與項目實戰

爬蟲工程師

requests庫安裝使用與項目實戰

6、太多了看圖

爬蟲工程師

爬蟲基礎最後一彈

好了,如果隻是想入個門的話,這些都差不多了,但我想每個學爬蟲的小夥伴,都是想成為一個偉大的爬蟲攻城獅的吧!來來來,讓我們繼續看看進階學習方法。

爬蟲進階

1、爬蟲架構實作

爬蟲工程師

爬蟲架構實作

2、破解反爬技術

爬蟲工程師

破解反爬技術

3、代理池實作

爬蟲工程師

代理池實作

4、模拟登陸

爬蟲工程師

模拟登陸

5、pyspider架構

爬蟲工程師

pyspider架構

爬蟲進階部分

1、APP的抓取

爬蟲工程師

APP的抓取

2、Scrapy架構

爬蟲工程師

Scrapy架構

3、分布式爬蟲實戰

爬蟲工程師

分布式爬蟲實戰

4、分布式爬蟲部署

爬蟲工程師
爬蟲工程師