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