爬蟲到底違法嗎?這位爬蟲工程師給出了答案

HTTP詳解面試

網頁結構簡介正則表達式

一文帶你瞭解爬蟲編程

你們好,本期將爲你們來採訪一位爬蟲工程師,與他相識是在一個技術號主羣中,只有他懟了個人文章,因此也算不打不相識!他即是小周碼字號主:Loco。 安全

在這裏插入圖片描述
文章主要分爲三部分,第一部分爲Loco自述:簡單講述一下他是如何從大學生一步一步走到如今。第二部分爲提問解答:豬哥收集了近100個問題,而後由Loco大佬自行選擇回答,快看看你有沒有被翻牌吧!第三部分是豬哥從Loco回答中提取的一些關鍵字,但願能加深你們的記憶。

1、自述

1.關於大學

我讀的大學是個野雞學校,雖然說是一個計算機專業,但實際的課程內容很雜。CAD、3DMAX、Office全家桶之類的都會有,因此在校期間對編程方面的成長並不大,當時也就只有寫個批量改文件名的工具這種水平。機器學習

畢業之後到目前爲止也就在兩家公司工做過,一家是上家公司,另外一個是如今這家,整體路程還算順利吧,沒遇到過什麼大的挫折,各類需求也能逼着本身成長。函數

2.接觸爬蟲

我接觸爬蟲這方面的原由,實際上是由於找實習,當時快畢業了嘛,要先找個實習鍛鍊鍛鍊。可是由於我認爲我能作的方向比較多,也尚未想好到底往哪一個方向發展比較好,因此就開始看知乎的相關回答,而後發現數據相關的好像都不錯,爬蟲這個方向看起來也挺有意思的,就邊學邊開始海投簡歷。工具

投着投着我就發現了一個問題,投簡歷這個事情太機械化了,能不能寫個程序幫我自動投?我就能夠騰出這部分時間來乾點別的事情了,這樣還能順便練一練寫爬蟲的技術。post

萬幸的是,當時的拉勾、智聯、實習僧、58等招聘網站的反爬基本沒有,對於一個初學爬蟲的人來講仍是能夠輕鬆地本身解決:搜索-> 獲取職位詳情->投遞簡歷這個操做的。學習

因而,一個自動投簡歷的小工具就誕生了,雖然代碼十分簡陋,徹底就是用requests庫以一個流程化的方式寫下來的,但已經足夠達到我想要的效果了。在那以後,我天天就只須要等待面試通知和電話面試,發現有合適的就去面試一下就行了,節省了大量的時間用在搞項目上。 區塊鏈

在這裏插入圖片描述

3.第一家公司

而後大概這麼投了一個多星期吧,中間面了十多個公司,有大有小,但都是要麼不太滿意、要麼對應方向的技術深度還不夠,直到碰到了上家公司。那是一家創業公司,可能由於創始人是作技術出身的關係吧,公司氛圍很不錯,跟老闆聊起來也很舒服,而後公司自己也是專門作爬蟲相關產品的,因此就去了這家公司。

在這家公司的那段時間應該是我技術水平成長最快的時候了,由於天天作的事情就是寫爬蟲,當時咱們團隊將應用商店排名前100的全部APP都「弄」了。什麼亂七八糟的問題都有碰到過,而後由於團隊裏每一個人有天賦的方向都不一樣,一邊被需求逼着查各類資料、挑戰本身,一邊互相補充知識,成長速度就很是快了

在這裏插入圖片描述

4.目前

從那離職之後我進了如今這家公司,目前作的主要就是區塊鏈搜索引擎的數據收集。看似簡單但實際仍是頗有挑戰性的,由於區塊鏈的特性會致使數據量很是大,並且區塊鏈還不像傳統互聯網網站那樣有個標準化的HTML,存在着各類麻煩的問題。因此對於我本身的技術水平增加速度也是有很大的影響的。

總結一下其實仍是那句話,需求逼的。

在這裏插入圖片描述

2、解答

在採訪大佬的時候,我在朋友圈徵集了大概100個問題,如下是大佬隨機挑選的21個比較有表明性的問題進行解答。

注:如下「爬蟲」均指「垂直爬蟲」

1.非爬蟲方向的技術轉行作爬蟲是否可行?

可行,並且有必定的基礎會很容易上手,至於深刻的部分就看本身了。

2.非技術轉行作爬蟲是否可行?

可行,但我認爲較難,由於爬蟲作深了之後是須要你瞭解各類相關領域知識的,而你如今對這些領域的東西一無所知,甚至可能連編程都還不知道怎麼開始,起點會比有基礎的人低不少。

3.爬蟲工做平常如何?加班多很少?

這個得看公司的,有些公司搞得都是些每天更新反爬的平臺(好比工商信息相關的),那基本就是得一直盯着看會不會出問題,一不當心就會要加班。

4.爬蟲對於學生黨的用處體如今哪些地方?

這個問題看我的,由於爬蟲技術可用的地方太多了,無法一個一個地都拿出來講。好比你想搞個自動簽到的工具,這其實本質上就是爬蟲;好比你想搞個自動回覆設定內容的機器人,這其實本質上也是爬蟲。

5.學到什麼程度才能入職爬蟲工程師?

我以爲首先發請求不用說了吧?抓包工具的使用也不用說了吧?熟練掌握XPath、正則表達式這種解析工具也是基本的,而後JSON之類的傳輸格式至少要了解過長啥樣吧,再就是JS逆向總得會一點吧(從只改變量名函數名混淆級別的代碼中找出加密參數生成部分的程度)。差很少會這些之後,再本身作幾個項目,應聘個初級爬蟲工程師沒啥問題。

6.如何成爲一名優秀的爬蟲工程師?

垂直爬蟲作到後面本質上就是逆向,你須要有良好的逆向思惟方式,而且對一些安全領域的騷東西也有必定的瞭解,這樣你才能遊刃有餘地處理高難度的反爬。

7.學爬蟲的學習路線?

上面的入職水平了解一下?而後就是能夠關注一下個人公衆號「小周碼字」(豬哥強力推薦)學習進階內容,網上其餘的教程絕對沒有講得這麼細的。

8.大約學習並從事爬蟲幾年才能夠達到一個不錯的高度?

這個問題也很看我的,我以爲主要看有沒有需求逼迫成長吧。以前招人的時候,不少三年經驗的也就比入門水平稍微好一點,他們在工做時所遇到的難點幾乎全是依靠自動化測試工具,對逆向水平毫無增加。因此建議仍是多依靠逆向手段去解決問題,成長速度會很快

9.薪資方面如何,在幾年內能夠達到15K?

同上,標15K及以上的招聘JD仍是挺多的,看看招聘需求就知道大概到什麼程度了。

10.面試爬蟲哪些技能點是加分項?

豐富且有深度的逆向經驗、熟悉通訊協議底層實現、作過騷東西等各類,但主要仍是逆向經驗。

在這裏插入圖片描述

11.做爲一名爬蟲工程師,對該崗位的前景如何看待?

將來主要內容在APP上的平臺應該會愈來愈多,難度也會愈來愈高,因此對於爬蟲工程師的逆向水平要求會愈來愈高,只會簡單逆向甚至不會逆向的人找工做會愈來愈難。

12.爬蟲和數據挖掘是同樣的嗎?

不同,爬蟲只是將數據取回來,具體怎麼分析纔是數據挖掘的事情。

13.爬蟲是否和黑客差很少?

差不少,與上個問題相似,只不過「黑客」這個詞太寬泛了,黑客也是有具體方向的。

14.千奇百怪的驗證碼只能對接打碼平臺嗎?有啥其餘辦法?

本身破唄,逆向+機器學習。

15.如今有用pyppeteer嗎?仍是一直是selenium?

都不用,由於效率過低了。

16.如何爬xx平臺?

涉及法律問題,這種針對某個平臺的東西是不能細說的。

17.爬蟲違法嗎?如何避免過線致使的違法?怎麼規避法律風險?

算是擦邊球吧,其實你即便遵照規則去爬別人的網站,只要人家想搞你,仍是可讓你作的事情變成違法的。因此建議不要作太過度的事情,畢竟狗急了也會跳牆。

還有就是不要爲一些明顯是作灰黑產的人/公司寫代碼,一旦他們出事了,你也會被牽連。

知乎上以前那個很火的被抓了的人,從回答內容中來看其實就是作打碼平臺的那個微涼,他這一個平臺聽說賺了至少千萬,主要應該是提供給作黑產的人使用了,這種其實被抓是早晚的事。最好的避免違法的辦法就是明顯以爲不太好的事情就不要去碰,基本就不會有啥問題。

18.如何有目的地爬取到真正想要的數據?

讓須要數據的人提需求,若是你本身就是那個須要數據的人,那就去作市場調研,看看你須要的數據在哪裏能找到。

在這裏插入圖片描述

19.反爬蟲最早進的技術是什麼?最有效的技術是什麼?

最早進的技術其實就是使用在PC平臺上已經玩爛的各類反破解技術將行爲監測點(設備指紋、用戶操做等)隱藏起來,而後傳給服務端作行爲識別,若是操做非人類或者缺乏某些東西就觸發風控。

最有效的技術其實不是技術而是方法,這個方法就是帳號收費,將你的數據變成須要花多少錢才能看到這樣子的,就能作到啥高端技術都不用上、輕鬆提升爬蟲方的獲取數據成本的效果,固然這也須要結合良好的產品設計,不然普通用戶的體驗會不好。

20.請問在xx領域有哪些應用?

這個應該是對應領域的人本身思考一下本身拿到那些公開數據究竟能夠作什麼。

21.須要大量帳號的平臺成本太高該怎麼辦?

人家就是依靠這種方式來提升你成本的,你若是以爲成本太高要麼放棄要麼換一條路線獲取數據。

3、關鍵字

1.實踐

Loco在投簡歷時直接使用爬蟲進行投簡歷,實習就有這種騷操做,讓我明白一個道理:實踐是得到高薪的一個捷徑!

2.需求逼的

和Loco大佬深有同感,尤爲在最開始工做的那幾年,需求是推進學習成長最快的方法,不逼一把本身,怎麼知道你的上限有多高?

3.逆向

和多位爬蟲工程師交流過,一致認爲逆向是最重要的一項技能,後面豬哥也會多學習並寫一些逆向方面的教程!

4.法律意識

爬蟲自己就是打法律的擦邊球,因此做爲技術人咱們更應該守住底線,向灰黑色產業說不。若是有些東西你不能確認是否是違法,能夠向身邊朋友諮詢或者百度,切莫存僥倖心理!

4、感謝

最後感謝Loco大佬在百忙中抽出時間接受豬哥的採訪,豬哥也看過他的一些爬蟲教程,目前不多有人會講爬蟲的逆向,而他是其中一位!

在這裏插入圖片描述
相關文章
相關標籤/搜索