大專畢業的他卻是爬蟲領域的大佬!收割阿里等諸多一線大廠offer

  本來呢!這周每天下班回到家我都是凌晨才休息,諮詢採訪了圈內Python領域的各位頂級大佬!準備了一些題材想在週末寫一篇Python領域相關的面經寶典,讓我們一起聽聽Python各領域大佬的經驗及建議。但是我決定後續再寫那篇文章,因爲我想帶給大家一篇比較勵志的文章。有時候適當的品嚐一下雞湯文章也是大有益處的嘞!我是正能量博主,自然雞湯也是最乾的那種!

    什麼!不喝?來人!強行給我灌一波雞湯…
雞湯
  以我自身爲例吧,我以前特反感那種心靈雞湯式的文章!所謂道理誰都懂!人生路難走啊!可是那時候我也常常處在迷茫期,我在想我的目標是什麼?真的有時候情緒特別低落的時候翻看手機,發現我曾經不屑一顧的雞湯式文章,裏面的內容講得卻正好我當前遇到的問題。其實有時候很多文章就像藥一樣,自己不病一下,可能永遠都不會知道這些藥的作用。但是真正重要的是什麼呢?是實際行動!

  這篇文章我個人認爲它真的還是很勵志的!我在寫的過程中也是能感受到一個平凡人走向強者之路的那種欣喜!當然,更多是背後的故事,每一個成爲強者的人在Ta的背後總會有那麼一段辛酸坎坷的道路!
《天行九歌》這部動漫不知道大家有沒有看過!黑白玄翦是一個強者!可他到底有多強,恐怕連玄機自己都不知道如何將他的能力徹底的展現出來!

  每一個強者的背後都有一段心酸的故事!心曲千萬端,悲來卻難說!當然嘍!有時候很多人成功了,即使沒有堅強的故事也會加以誇張的手法,捏造一個堅強的故事!
在這裏插入圖片描述

  我的初心只是希望這篇文章能夠幫助更多迷茫的朋友們包括我自己!能夠在技術道路上時刻鞭策我們自己,也希望我們都能成爲那個讓人敬佩的大佬

機會永遠是留給努力在準備的人!成功的祕訣在於能夠多努力一次!爲了成功,你努力了多少次?

你要的生活,只能你自己在風雨中奔跑!沒有人給你打傘,你不努力,就過不上你想要的生活!只能在泥淖中苦苦掙扎!

  我怎麼老控制不住自己的手想寫些多愁善感的東西呢!再寫估計等下各位讀者要朝我丟雞蛋、爛白菜啥的了…哈哈,言歸正傳!進入今天的主題,今天這篇勵志文章主要的主人公到底是誰呢?他的名字叫韋世東。該怎麼向大家介紹呢?那我就簡單的做一些描述吧…

  • 圖靈教育簽約作者
  • 電子工業出版社簽約作者
  • 華爲雲認證雲享專家
  • 掘金社區優秀作者
  • GitChat 認證作者
  • 開源項目 aiowebsocket 作者

同樣他也是一名資深爬蟲工程師,在爬蟲領域也處處留下了他的足跡,它是《Python3反爬蟲原理與繞過實戰》的作者
作者
以下是主人公自己一些講述
  我是大專學歷,轉行自學兩年的 Python 開發者!在 2018 年以前,我並不是一個專業的研發,工作內容甚至與技術沒有太多關聯。我所學的專業是“軟件開發”,但大專唸書的時候沒有好好學習,導致畢業後四處碰壁。
  畢業後的第一年輾轉進入了一個互聯網金融企業,在技術部裏面擔任最小的小弟。隨着公司的發展和人數增加,我從小弟變成了小哥,後來成爲了連接技術部和公司高層的紐帶。
  從這個時候起,我離技術越來越遠,後來慢慢轉到了運營崗,並通過努力從運營小弟變成了運營小哥。2013 年畢業,到 2018 年轉技術,中間 5 年時間裏我也只有第一年呆在技術崗位,其他幾年都與技術無關。這幾年我待過的崗位有:信息安全員、技術組長、運營專員、運營指導、副總經理、運營總監。
  互聯網金融倒閉和跑路潮爆發,我感到行業岌岌可危,而且我覺得就我這點運營水平也蹦噠不起來(說一事無成也不爲過)。恰好那段時間我瞭解到 Python 語言,瞭解到爬蟲對於企業運營和發展的重要性,還有 Python 易學的特點。
  於是我下班後看 Python 的入門教程,並根據網上文章嘗試運行自己編寫的代碼。唸書的時候,學校教的是 C 語言、C# 和 PHP,但我都沒有學會。唯獨這一次,我感覺我能夠學會 Python。
  在家看慕課網的 Python 入門文章、廖雪峯的 Python3 入門教程文章和慕課網 Bobby 的爬蟲入門視頻。跟着教程學習了大概 3 個月,我就嘗試自己接一些小需求來做,例如爬取一些公開數據、編寫 Python 程序等。那時候一兩天才能完成任務,得到的報酬通常是 30~300,有時候甚至靠回答羣友的問題領幾塊錢小紅包。
  自學階段過去之後,我的 Python 水平已經達到了初級,還學會了很多爬蟲相關的技術,例如網頁解析、數據存儲、定時調度、去重和增量爬取等,對於常見的一些反爬蟲措施也略有了解。
  從零基礎到這個階段,我大概花了 7 個月。這時候,我覺得我能夠勝任一個初級爬蟲工程師的工作了,於是便在省會城市的人才網找了一些招爬蟲或 Python 研發的公司,投了簡歷。三天內,接到了 5 個面試,然後也順利的找到了一份爬蟲組長的工作。
  工作期間,我們爬蟲組的任務就是完成技術負責人分配的數據爬取任務,目標分爲網站和 APP兩大類。我們公司是體育行業,所以數據的變動是常有的事,這就要求爬蟲組能夠高頻的爬取數據。
爲了省事,我參考 Scrapyd 和 Celery,用 Django 編寫了一套支持 Crontab 規則的調度平臺,這樣我們編寫的爬蟲就可以集中在這個調度平臺上進行管理。
  在反爬蟲方面,對於那些用 JavaScript 保護數據的網站,我們最開始採取的是 Selenium 或者 Splash 這種自動渲染工具來應對。但後來考慮到高頻、時效性和資源佔用等問題,便硬着頭皮去解目標網站中的 JS 算法,再用 Python 模擬實現同樣的算法。這樣,將爬蟲的爬取速度和資源佔用都調整到了最優的狀態!

  那麼!作爲一名從自學到資深的爬蟲大佬,他的學習方法以及經驗想必也是在職業生涯中積累了不少,所以我也向大佬提出了一些關於爬蟲面試以及反爬技術趨勢的一些問題!很多時候!知識跟經驗我們是可以共用的,不一定只是在爬蟲領域!我在不斷總結學習的情況下,也希望能呈現一些有意義且有價值的東西出來!

對話
在這裏插入圖片描述
對話
主人公呢!目前就職於國內某大廠
在這裏插入圖片描述
他也將自己在大廠的一些面經做了較全的整理(來!小本子準備):

  • 第一輪常見問題,假設這輪是技術一面
    1、請你簡單介紹一下自己
    2、按照簡歷上的工作經歷和內容詢問細節,例如:
      •你爬過 abc 和 asc,期間有沒有遇到什麼困難,你是如何完成的?
      •請說說你在團隊中充當的角色和主要負責的部分
      •我看你參與了 sail 的開發,當時你們爲什麼要開發這樣一個平臺,而不是考慮用別的方式替代?
      •你工作期間遇到過哪些反爬蟲?都能解決嗎?怎麼解決的?

  3、通過交談了解個人能力,例如:

    •你知道的排序算法有哪些?它們的時間複雜度分別是?
    •你能清楚描述邏輯的排序算法有哪幾個,說來聽聽
    •你的主要編程語言是 Python,那你說說 Python 中深淺拷貝的區別和實現
    •Python 的 yield 關鍵字有什麼作用?
    •講講你瞭解的網絡協議的構成和雙端交互流程
    •你常用的數據庫是?爲什麼會選擇它
    •有在項目中用過消息中間件嗎,例如 Kafka、RabbitMQ 之類的

  4、對某個技術點深入討論,例如:

    •你說說點選驗證碼的正向校驗流程和爬蟲工程師的技術流程
    •鼠標軌跡一般是怎麼記錄的?
    •怎麼模擬鼠標軌跡,成功率高的算法有多高?
    •你用技術能通過哪幾個驗證碼的驗證?
    •你認爲通過率受到哪些因素影響?

  • 第二輪常見問題(假設這是技術二面)
    2、找優點與缺點,例如:

    •你說說擅長哪些方面
    •現在有一個場景,假設需要按預告時間爬取實時體育數據(例如籃球賽事,包括隊伍比分、球員得分、陣容等),你如何確保爬蟲程序能夠及時、穩定且準確地將需求團隊要求的數據傳遞過來?
    •說說網頁端常見的反爬蟲手段和解決的辦法
    •JavaScript 逆向你一般怎麼做的,先如何,再如何?
    •如果遇到硬茬,你通常怎麼做?
    •代碼混淆的手段有哪些?怎麼實現的?
    •APP 逆向你現在到什麼程度?
    •講講 hook 原理和具體的操作過程
    •有沒有令人眼前一亮的反爬蟲思路或者破解思路?
    •你現在技術方面有哪些瓶頸或者覺得可以提升的地方?

  • 第三輪常見問題(假設這是技術三面)

  1、做題通常有幾種情況,例如:

    •這有幾道題你做一下,N 時間交給我
    •你現在技術方面有哪些瓶頸或者覺得可以提升的地方?
    •這有幾道題,不限時間,你做出來了告訴我

  2、題目範圍大致分爲幾種,例如

    •編程知識、語言知識和爬蟲知識,例如語言特性、網絡協議知識和程序設計等
    •算法題,例如你按照題目指引給的輸入和輸出實現一個程序。我遇到過的有排序、樹、圖
    •這有幾個網站,你需要獲取 ass 上的信息數據

  3、講講你做題的思路,例如:

    •這一題爲什麼這麼做,有什麼好處?
    •你可以採用其他方式完成嗎?
    •描述一下做題過程

  其中不乏關聯性很強的連環炮問題,如果你能夠流暢應答,說明你的技術能力很紮實。如果遇到難以回答的問題或者答不對,那就說明你還有很多需要補強的地方,加油!
  補充:靠後的面試中會問很多跟真實需求有關的問題,例如通信、多機資源監控和管理、主動監控數據、性能提升,對應的問題例如如何在有限的
QPS
情況下保證能夠獲取到有效的、優質的數據?如何實現主動監控數據,一旦結構或數據發生變化就能夠得到通知?你設計一組調度架構,如何能保證服務器資源最大化利用

  其實我們很多人在面試的時候都會非常細心的精心準備,會在網上找一些高頻的面試題,也會去leetcode刷一些算法。有用嗎?回答是肯定有用的!其實我個人覺得面試這種東西很神奇,只要對上眼了,可能你之前所有的準備都可能派不上用場。但是!這裏並不是讓大家佛系的取對待每一次機會,畢竟機會都是留給有準備的人!就像這篇文章一樣它可能會幫助你在獲得下一次offer中,掉坑裏的概率略小!

  • 我也給大家分享一個自己的經驗及技巧:
    很多時候我們在面試的時候如果面試官問了你一個問題,可能我們不會,但是我們該怎麼做呢?我給出了以下高頻的幾種回答:

  第一種回答:我不會!

  第二種回答:隨便說一個答案,面試官質疑,你閃爍其詞,反正就是不說自己不會!

  第三種回答:靈光一閃,對問題不置可否,一頓胡扯將話題引到你熟悉的領域!

  第四種回答:說實話我不瞭解這個問題,但是我可以嘗試分析一下,如果有不對的地方希望得到您的指正!

你覺得什麼樣的回答更好呢?或者說你有什麼更好的回答!歡迎評論區留言。

2. 致謝

好了,到這裏又到了跟大家說再見的時候了。我只是一個會寫爬蟲的段子手而已,一個希望有朝一日能夠實現財富自由,能夠早日榮歸故里的遊子罷了。希望我的文章能帶給您知識,帶給您幫助,帶給您歡笑!同時也謝謝您能抽出寶貴的時間閱讀,創作不易,如果您喜歡的話,點個贊再走吧。您的支持是我創作的動力,希望今後能帶給大家更多優質的文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章