做爬蟲工程師的的薪資為20K起,當(dāng)然,因?yàn)榇髷?shù)據(jù),薪資也將一路上揚(yáng)。那么,Python需要學(xué)到什么程度呢?今天我們來(lái)看看3位前輩的回答。
前段時(shí)間快要畢業(yè),而我又不想找自己的老本行Java開發(fā)了,所以面了很多Python爬蟲崗位。
因?yàn)槲以谀暇┥蠈W(xué),所以我一開始只是在南京投了簡(jiǎn)歷,我一共面試了十幾家企業(yè),其中只有一家沒(méi)有給我發(fā)offer,其他企業(yè)都愿意給到10K的薪資,不要拿南京的薪資水平和北上深的薪資水平比較,結(jié)合面試常問(wèn)的問(wèn)題類型說(shuō)一說(shuō)我的心得體會(huì)。
第一點(diǎn):Python
因?yàn)槊嬖嚨氖荘ython爬蟲崗位,面試官大多數(shù)會(huì)考察面試者的基礎(chǔ)的Python知識(shí),包括但不限于:
Python2.x與Python3.x的區(qū)別
Python的裝飾器
Python的異步
Python的一些常用內(nèi)置庫(kù),比如多線程之類的
第二點(diǎn):數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)與算法是對(duì)面試者尤其是校招生面試的一個(gè)很重要的點(diǎn),當(dāng)然小公司不會(huì)太在意這些,從目前的招聘情況來(lái)看對(duì)面試者的數(shù)據(jù)結(jié)構(gòu)與算法的重視程度與企業(yè)的好壞成正比,那些從不問(wèn)你數(shù)據(jù)結(jié)構(gòu)的你就要當(dāng)心他們是否把你當(dāng)碼農(nóng)用的,當(dāng)然以上情況不絕對(duì),最終解釋權(quán)歸面試官所有。
第三點(diǎn):Python爬蟲
最重要也是最關(guān)鍵的一點(diǎn)當(dāng)然是你的Python爬蟲相關(guān)的知識(shí)與經(jīng)驗(yàn)儲(chǔ)備,這通常也是面試官考察的重點(diǎn),包括但不限于:
你遇到過(guò)的反爬蟲的策略有哪些?
你常用的反反爬蟲的方案有哪些?
你用過(guò)多線程和異步嗎?除此之外你還用過(guò)什么方法來(lái)提高爬蟲效率?
有沒(méi)有做過(guò)增量式抓取?
對(duì)Python爬蟲框架是否有了解?
第四點(diǎn):爬蟲相關(guān)的項(xiàng)目經(jīng)驗(yàn)
爬蟲重在實(shí)踐,除了理論知識(shí)之外,面試官也會(huì)十分注重爬蟲相關(guān)的項(xiàng)目:
你做過(guò)哪些爬蟲項(xiàng)目?如果有Github最好
你認(rèn)為你做的最好的爬蟲項(xiàng)目是哪個(gè)?其中解決了什么難題?有什么特別之處?
以上是我在面試過(guò)程中,會(huì)碰到的一些技術(shù)相關(guān)的問(wèn)題的總結(jié),當(dāng)然面試中不光是技術(shù)這一點(diǎn),但是對(duì)于做技術(shù)的,過(guò)了技術(shù)面基本上就是薪資問(wèn)題了。
也許有人問(wèn)我現(xiàn)在在哪家公司做爬蟲開發(fā)?很抱歉,最終我放棄了南京的所有機(jī)會(huì)到了上海做我更喜歡的崗位:數(shù)據(jù)工程師。
成長(zhǎng)離不開與優(yōu)秀的同伴共同交流,如果你需要好的學(xué)習(xí)環(huán)境,好的學(xué)習(xí)資源,這里歡迎每一位熱愛(ài)Python的小伙伴,Python學(xué)習(xí)圈
2
給你一點(diǎn)我的面經(jīng)吧。
初級(jí)的:
網(wǎng)絡(luò)基礎(chǔ):cookie,session,https,headers常用的字段,代理使用等等
python基礎(chǔ):這個(gè)網(wǎng)上搜到的面經(jīng)都得會(huì),加上異步,多進(jìn)程,多線程等等
爬蟲:xpath,requests如何處理https,常見(jiàn)的反爬措施,舉例說(shuō)一個(gè)最難的爬蟲過(guò)程,scrapy使用中的細(xì)節(jié),例如代理,cookie,傳參等等。
數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)操作,并表之類的。
中級(jí):
網(wǎng)絡(luò):幾層網(wǎng)絡(luò)層的細(xì)節(jié),比如說(shuō)說(shuō)udp/tcp/smtp區(qū)別,說(shuō)說(shuō)10.x.x.x/127.x.x.x/192.x.x.x的區(qū)別,說(shuō)說(shuō)DNS,談?wù)劼酚山粨Q機(jī)的區(qū)別
python:多重繼承,多態(tài),單例用裝飾器的實(shí)現(xiàn),數(shù)組/生成器/列表解析效率等等稍深入的細(xì)節(jié)
爬蟲:分布式爬蟲的實(shí)現(xiàn),給你一個(gè)任務(wù)你馬上給出一個(gè)合理的架構(gòu),驗(yàn)證碼的處理,增量數(shù)據(jù)爬取,寫爬蟲時(shí)有沒(méi)寫些輔助工具。
數(shù)據(jù)庫(kù):sql nosql的細(xì)節(jié),性能上的。
加分項(xiàng):數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí),自然語(yǔ)言處理,能寫網(wǎng)站,熟練操作linux,github小星星
3
首先說(shuō)說(shuō)Python吧
爬蟲給人的感覺(jué)就是對(duì)于Python編程的知識(shí)要求并不高,確實(shí),搞懂基本數(shù)據(jù)結(jié)構(gòu)、語(yǔ)句,會(huì)寫寫函數(shù)好像就OK了。
自己業(yè)余玩玩爬點(diǎn)數(shù)據(jù)還OK,但是你是要找工作成功爬蟲工程師的,扎實(shí)的編程基礎(chǔ)可不是會(huì)寫函數(shù)就夠了的。Python的高級(jí)特性、面向?qū)ο缶幊獭⒍嗑€程、裝飾器等等你至少需要了解一下吧。
現(xiàn)在很多爬蟲工程師的面試,編程的基本功要求還是很高的。編程的功底,以及對(duì)語(yǔ)言的理解,從某種程度上可以看出你的學(xué)習(xí)能力、發(fā)展?jié)摿Α?
爬蟲技術(shù)
HTTP必須要有很深刻的理解,這是你縱橫網(wǎng)絡(luò)的立身之本;
BeautifulSoup、xpath這些都是基礎(chǔ)操作了,一定要做到非常熟練;
Scrapy框架要會(huì)用,要能信手捏來(lái)寫個(gè)分布式爬蟲;
Webdriver、Selenium、PhantomJS至少也要會(huì)使用吧;
反爬蟲的技巧,重中之重,能不能搞回來(lái)數(shù)據(jù),能高多少數(shù)據(jù)回來(lái),很大程度依賴于此。抓包、cookie分析、代理池搭建、字體加密、驗(yàn)證碼處理等等,也都是常規(guī)操作了;
當(dāng)然數(shù)據(jù)庫(kù)也少不了啊。一般企業(yè)要求至少會(huì)一種SQL和一種noSQL。
了解布隆過(guò)濾器,會(huì)增量爬取。
加分項(xiàng):
掌握Python web相關(guān)的一些東西,能夠進(jìn)行后端開發(fā);
掌握數(shù)據(jù)分析或者數(shù)據(jù)挖掘的技能,能夠搞個(gè)算法模型,做個(gè)分析和預(yù)測(cè)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
