今天不講技術(shù),就聊聊天。
我大一的時候?qū)W習(xí)是沒有方向的,就會學(xué)的很亂什么都想學(xué)比如:python的前端框架、小程序、爬蟲、機器學(xué)習(xí)等等,結(jié)果就是什么都沒學(xué)好白白浪費了一年的時間。到大二的時候我才確定自己的方向是數(shù)據(jù)分析師,那我就要求我掌握數(shù)據(jù)爬取、數(shù)據(jù)清洗、數(shù)據(jù)存儲、數(shù)據(jù)可視化、數(shù)據(jù)分析、數(shù)據(jù)預(yù)測(機器學(xué)習(xí))這一條龍的能力。
我的計劃是在大二期間掌握數(shù)據(jù)爬?。ㄟ_到中級爬蟲工程師的能力)、數(shù)據(jù)可視化;
大三學(xué)習(xí)機器學(xué)習(xí)、數(shù)據(jù)分析的理論知識、針對企業(yè)的用人需求具體學(xué)習(xí)一些數(shù)據(jù)分析的工具;
大四就滾去工作了
爬蟲的成長過程:
初級:可以對付一些沒有反爬措施的網(wǎng)站,這類網(wǎng)站用xpath、css選擇器就能輕松獲取數(shù)據(jù),獲取完數(shù)據(jù)總要存起來吧,這就要學(xué)數(shù)據(jù)庫了MySQL、MongoDB、redis
要求掌握的庫:requests、lxml、selenium、PyQuery、re、pymysql、pymongo
你以為掌握了這些就算初級爬蟲工程師了啦,還差得遠呢。
掌握了這些你還需要了解Ajax、動態(tài)渲染
運用之前的庫可以解決沒有加密的Ajax,用selenium可以解決動態(tài)渲染(只是速度慢了點)。
速度慢就可以學(xué)習(xí)多線程、多進程、異步最大程度的提升爬取的速度
要求掌握的庫:threading、multiprocessing、asyncio、aiohttp、以及支持異步操作的Pyppeteer(和selenium的功能一樣)
掌握了這些你就算一個初級爬蟲工程師了
初級過度為中級的這個過程很難,首先你要學(xué)習(xí)JavaScript(要求可以看懂代碼,了解一些常見的API)、其次要了解js逆向的過程以及驗證碼的識別。JavaScript好學(xué)資源很多,js逆向的資源就比較少,最好是能找到一款成體系的、干貨多的課程,雖然我知道一些課程但是為了避免你們說我打廣告我在這里就不說了想知道的話可以私信我
中級:目前我的能力也就是個中級爬蟲工程師。這個階段需要學(xué)習(xí)一些加密的庫,常見的加密方法是AES、RSA,還需要學(xué)習(xí)一些哈希庫
要求掌握的庫:Crypto、base64、hashlib
還有一個最讓人頭疼的就是驗證碼,解決方法也很簡單那就是花錢找打碼平臺,像我這種窮人家那當(dāng)然是用不起這方法的,那就只能自己收集數(shù)據(jù)、標注、訓(xùn)練模型(深度學(xué)習(xí))
掌握了這些恭喜你已經(jīng)是中級爬蟲工程師了
再之后的就都是大神了,需要結(jié)合機器學(xué)習(xí)的技術(shù)進行爬蟲
這里可能不夠全面,我也就是提供一下大概的方向。