當(dāng)下全棧工程師的概念很火,而Python是一種全棧的開(kāi)發(fā)語(yǔ)言,你如果能學(xué)好Python,那么前端,后端,測(cè)試,大數(shù)據(jù)分析,爬蟲(chóng)等這些工作你都能勝任。
Python主要有以下五大主要應(yīng)用:
網(wǎng)絡(luò)爬蟲(chóng)
數(shù)據(jù)分析
web開(kāi)發(fā)
自動(dòng)化運(yùn)維
一、網(wǎng)絡(luò)爬蟲(chóng)
網(wǎng)絡(luò)爬蟲(chóng)又稱網(wǎng)絡(luò)蜘蛛,是指按照某種規(guī)則在網(wǎng)絡(luò)上爬取所需內(nèi)容的腳本程序。眾所周知,每個(gè)網(wǎng)頁(yè)通常包含其他網(wǎng)頁(yè)的入口,網(wǎng)絡(luò)爬蟲(chóng)則通過(guò)一個(gè)網(wǎng)址依次進(jìn)入其他網(wǎng)址獲取所需內(nèi)容。
爬蟲(chóng)有什么用?
做為通用搜索引擎網(wǎng)頁(yè)收集器。(google,baidu)
做垂直搜索引擎.
科學(xué)研究:在線人類(lèi)行為,在線社群演化,人類(lèi)動(dòng)力學(xué)研究,計(jì)量社會(huì)學(xué),復(fù)雜網(wǎng)絡(luò),數(shù)據(jù)挖掘,等領(lǐng)域的實(shí)證研究都需要大量數(shù)據(jù),網(wǎng)絡(luò)爬蟲(chóng)是收集相關(guān)數(shù)據(jù)的利器。
爬蟲(chóng)是搜索引擎的第一步也是最容易的一步。
為什么選Python?
Python優(yōu)勢(shì)很多,總結(jié)兩個(gè)要點(diǎn):
1)抓取網(wǎng)頁(yè)本身的接口
相比與其他靜態(tài)編程語(yǔ)言,如java,c#,C++,python抓取網(wǎng)頁(yè)文檔的接口更簡(jiǎn)潔;相比其他動(dòng)態(tài)腳本語(yǔ)言,如perl,shell,python的urllib2包提供了較為完整的訪問(wèn)網(wǎng)頁(yè)文檔的API。(當(dāng)然ruby也是很好的選擇)
此外,抓取網(wǎng)頁(yè)有時(shí)候需要模擬瀏覽器的行為,很多網(wǎng)站對(duì)于生硬的爬蟲(chóng)抓取都是封殺的。這是我們需要模擬user agent的行為構(gòu)造合適的請(qǐng)求,譬如模擬用戶登陸、模擬session/cookie的存儲(chǔ)和設(shè)置。在python里都有非常優(yōu)秀的第三方包幫你搞定,如Requests,mechanize
2)網(wǎng)頁(yè)抓取后的處理
抓取的網(wǎng)頁(yè)通常需要處理,比如過(guò)濾html標(biāo)簽,提取文本等。python的beautifulsoap提供了簡(jiǎn)潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。
其實(shí)以上功能很多語(yǔ)言和工具都能做,但是用python能夠干得最快,最干凈。Life is short, u need python.
二、數(shù)據(jù)分析
一般我們用爬蟲(chóng)爬到了大量的數(shù)據(jù)之后,我們需要處理數(shù)據(jù)用來(lái)分析,不然爬蟲(chóng)白爬了,我們最終的目的就是分析數(shù)據(jù),在這方面 關(guān)于數(shù)據(jù)分析的庫(kù)也是非常的豐富的,各種圖形分析圖等 都可以做出來(lái)。也是非常的方便,其中諸如Seaborn這樣的可視化庫(kù),能夠僅僅使用一兩行就對(duì)數(shù)據(jù)進(jìn)行繪圖,而利用Pandas和numpy、scipy則可以簡(jiǎn)單地對(duì)大量數(shù)據(jù)進(jìn)行篩選、回歸等計(jì)算。而后續(xù)復(fù)雜計(jì)算中,對(duì)接機(jī)器學(xué)習(xí)相關(guān)算法,或者提供Web訪問(wèn)接口,或是實(shí)現(xiàn)遠(yuǎn)程調(diào)用接口,都非常簡(jiǎn)單。
三、人工智能
人工智能并不是什么新概念,其歷史已經(jīng)超過(guò)了半個(gè)世紀(jì)。在人工智能領(lǐng)域過(guò)去這幾十年的發(fā)展中,傳統(tǒng)的主流編程語(yǔ)言明明是 Lisp,而后起之秀也是像 Prolog 這樣的語(yǔ)言。但是當(dāng)這一波人工智能真正開(kāi)始流行起來(lái)時(shí),人們發(fā)現(xiàn),那些流行的框架和工具,要么是用 Python 寫(xiě)的,比如 Theano,要么是 C++ 寫(xiě)的,但是 Python 作為接口語(yǔ)言,比如 TensorFlow,Caffe,MxNet 等。僅有的非 Python 框架 Torch,在 2017 年也抵不住壓力,開(kāi)發(fā)了 PyTorch。
四、web開(kāi)發(fā)
很多人只知道Java、PHP可做web開(kāi)發(fā),但對(duì)于Python也能做web開(kāi)發(fā)卻知之甚少。很多人可能不知道,Python其實(shí)是和互聯(lián)網(wǎng)一起長(zhǎng)大的。作為動(dòng)態(tài)語(yǔ)言,并且具有更高的抽象層次的 Python 和 Perl,很快就被開(kāi)發(fā)者們發(fā)現(xiàn)更適合用于開(kāi)發(fā)網(wǎng)站,并在早期互聯(lián)網(wǎng)的興起過(guò)程中發(fā)揮重要作用。
五、自動(dòng)化運(yùn)維
隨著技術(shù)的進(jìn)步、業(yè)務(wù)需求的快速增長(zhǎng),一個(gè)運(yùn)維人員通常要管理上百、上千臺(tái)服務(wù)器,運(yùn)維工作也變的重復(fù)、繁雜。把運(yùn)維工作自動(dòng)化,能夠把運(yùn)維人員從服務(wù)器的管理中解放出來(lái),讓運(yùn)維工作變得簡(jiǎn)單、快速、準(zhǔn)確。
其他領(lǐng)域:
1. 游戲開(kāi)發(fā)
你可以用PyGame來(lái)開(kāi)發(fā)游戲,但這并不是最受歡迎的游戲引擎。你可以用它來(lái)開(kāi)發(fā)業(yè)余愛(ài)好項(xiàng)目,但如果你對(duì)游戲開(kāi)發(fā)很認(rèn)真,建議不要選它。
我建議使用Unity的C#,這是最受歡迎的游戲引擎之一。它能讓你為許多平臺(tái)開(kāi)發(fā)游戲,包括Mac、Windows、iOS和Android。
2. 桌面應(yīng)用
你可以用Python的Tkinter,但這并不是最熱門(mén)的選擇。Java,C#和C ++等語(yǔ)言似乎更受歡迎。
3.手機(jī)APP
python語(yǔ)言雖然很萬(wàn)能,但用它來(lái)開(kāi)發(fā)app還是顯得有點(diǎn)不對(duì)路,因此用python開(kāi)發(fā)的app應(yīng)當(dāng)是作為編碼練習(xí)、或者自?shī)首詷?lè)所用,加上目前這方面的模塊還不是特別成熟,bug比較多,總而言之,勸君莫輕入。
-
人工智能
+關(guān)注
關(guān)注
1791文章
46859瀏覽量
237571 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1427瀏覽量
34015 -
python
+關(guān)注
關(guān)注
56文章
4782瀏覽量
84453
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論