當下全棧工程師的概念很紅,而Python是一種全棧的開發語言,你如果能學好Python,那麼前端,後端,測試,大資料分析,爬蟲等這些工作你都能勝任。
Python主要有以下五大主要應用:
網路爬蟲
資料分析
人工智慧
web開發
自動化運維
一、網路爬蟲
網路爬蟲又稱網路蜘蛛,是指按照某種規則在網路上爬取所需內容的指令碼程式。眾所周知,每個網頁通常包含其他網頁的入口,網路爬蟲則通過一個網址依次進入其他網址獲取所需內容。
爬蟲有什麼用?
做為通用搜索引擎網頁收集器。(google,baidu)
做垂直搜尋引擎.
科學研究:線上人類行為,線上社群演化,人類動力學研究,計量社會學,複雜網路,資料探勘,等領域的實證研究都需要大量資料,網路爬蟲是收集相關資料的利器。
爬蟲是搜尋引擎的第一步也是最容易的一步。
為什麼選Python?
Python優勢很多,總結兩個要點:
1)抓取網頁本身的介面
相比與其他靜態程式語言,如java,c#,C++,python抓取網頁文件的介面更簡潔;相比其他動態指令碼語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文件的API。(當然ruby也是很好的選擇)
此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對於生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構造合適的請求,譬如模擬使用者登陸、模擬session/cookie的儲存和設定。在python裡都有非常優秀的第三方包幫你搞定,如Requests,mechanize
2)網頁抓取後的處理
抓取的網頁通常需要處理,比如過濾html標籤,提取文字等。python的beautifulsoap提供了簡潔的文件處理功能,能用極短的程式碼完成大部分文件的處理。
其實以上功能很多語言和工具都能做,但是用python能夠幹得最快,最乾淨。Life is short, u need python.
二、資料分析
一般我們用爬蟲爬到了大量的資料之後,我們需要處理資料用來分析,不然爬蟲白爬了,我們最終的目的就是分析資料,在這方面 關於資料分析的庫也是非常的豐富的,各種圖形分析圖等 都可以做出來。也是非常的方便,其中諸如Seaborn這樣的視覺化庫,能夠僅僅使用一兩行就對資料進行繪圖,而利用Pandas和numpy、scipy則可以簡單地對大量資料進行篩選、迴歸等計算。而後續複雜計算中,對接機器學習相關演算法,或者提供Web訪問介面,或是實現遠端呼叫介面,都非常簡單。
三、人工智慧
人工智慧並不是什麼新概念,其歷史已經超過了半個世紀。在人工智慧領域過去這幾十年的發展中,傳統的主流程式語言明明是 Lisp,而後起之秀也是像 Prolog 這樣的語言。但是當這一波人工智慧真正開始流行起來時,人們發現,那些流行的框架和工具,要麼是用 Python 寫的,比如 Theano,要麼是 C++ 寫的,但是 Python 作為介面語言,比如 TensorFlow,Caffe,MxNet 等。僅有的非 Python 框架 Torch,在 2017 年也抵不住壓力,開發了 PyTorch。
四、web開發
很多人只知道Java、PHP可做web開發,但對於Python也能做web開發卻知之甚少。很多人可能不知道,Python其實是和網際網路一起長大的。作為動態語言,並且具有更高的抽象層次的 Python 和 Perl,很快就被開發者們發現更適合用於開發網站,並在早期網際網路的興起過程中發揮重要作用。
五、自動化運維
隨著技術的進步、業務需求的快速增長,一個運維人員通常要管理上百、上千臺伺服器,運維工作也變的重複、繁雜。把運維工作自動化,能夠把運維人員從伺服器的管理中解放出來,讓運維工作變得簡單、快速、準確。
其他領域:
1. 遊戲開發
2. 桌面應用
3.手機APP
python語言雖然很萬能,但用它來開發app還是顯得有點不對路,因此用python開發的app應當是作為編碼練習、或者自娛自樂所用,加上目前這方面的模組還不是特別成熟,bug比較多,總而言之,勸君莫輕入。