當下全棧工程師的概念很火,而Python是一種全棧的開發語言,你如果能學好Python,那么前端,后端,測試,大數據分析,爬蟲等這些工作你都能勝任。
Python主要有以下五大主要應用:
網絡爬蟲
數據分析
web開發
自動化運維
一、網絡爬蟲
網絡爬蟲又稱網絡蜘蛛,是指按照某種規則在網絡上爬取所需內容的腳本程序。眾所周知,每個網頁通常包含其他網頁的入口,網絡爬蟲則通過一個網址依次進入其他網址獲取所需內容。
爬蟲有什么用?
做垂直搜索引擎。
科學研究:在線人類行為,在線社群演化,人類動力學研究,計量社會學,復雜網絡,數據挖掘,等領域的實證研究都需要大量數據,網絡爬蟲是收集相關數據的利器。
爬蟲是搜索引擎的第一步也是最容易的一步。
為什么選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. 游戲開發
你可以用PyGame來開發游戲,但這并不是最受歡迎的游戲引擎。你可以用它來開發業余愛好項目,但如果你對游戲開發很認真,建議不要選它。
我建議使用Unity的C#,這是最受歡迎的游戲引擎之一。它能讓你為許多平臺開發游戲,包括Mac、Windows、iOS和Android。
2. 桌面應用
你可以用Python的Tkinter,但這并不是最熱門的選擇。Java,C#和C ++等語言似乎更受歡迎。
3.手機APP
python語言雖然很萬能,但用它來開發app還是顯得有點不對路,因此用python開發的app應當是作為編碼練習、或者自娛自樂所用,加上目前這方面的模塊還不是特別成熟,bug比較多,總而言之,勸君莫輕入。
-
人工智能
+關注
關注
1791文章
47279瀏覽量
238511 -
C++
+關注
關注
22文章
2108瀏覽量
73651 -
python
+關注
關注
56文章
4797瀏覽量
84690
發布評論請先 登錄
相關推薦
評論