本文是面向SEO人群的Python程序語言入門教程,也適用於其他沒有程序基礎但想學習些程序,以解決簡單的實際應用需求的人群。在後面會盡量用最基礎的角度來介紹這門語言。
本來打算從網上找一篇入門教程,但因為Python很少是程序員的第一次接觸程序所學的語言,所以網上現有的教程多不是很基礎,還是決定自己寫下這些。
如果沒有程序基礎的話,可能會覺得本文涵蓋的內容有點多。對照大學裡面常教的C語言的教學速度,本文大約有四五個課時的內容;對照網上程序類的視頻 教程,大致相當於兩三個小時的內容;對於翻一本程序書籍,大約相當於翻一個小時書。也因此,如果有深入學習的打算的話,為了效率還是推薦看書。
如果暫時不能理解本文中的一些內容也沒關系,因為都是一些經常會用到的基礎知識,在實際編寫代碼的過程中會一直遇到。後面會大約有兩三篇關於實用代碼編寫的文章,可以選擇那時再對這些知識加深印象。
但如果是覺得技術對於SEO沒有必要而對本文沒有興趣的話,試問打算將SEO作為自己多久的職業?如果打算真正將它做好的話,在至少有上萬小時需要用去的精力裡面,從裡面抽幾十幾百小時去學習些技術應該是合情合理的。
若因文章有什麼沒表述清楚而導致無法理解,請務必幫忙提出。第一次寫程序類的較完整的教程,難免有疏漏之處。
為什麼學習Python
如果決定學習一些技術來輔助SEO的話,對於程序語言至少在我看來Python可以算是首選。
其一、Python入門相對簡單
如果誰在大學課程裡面接觸過C語言但對程序了解不多的話,或許會覺得程序就是像C那麼麻煩,其實不然,學了具有美感的Python代碼以後就會知道C代碼又臭又長。就算完全沒接觸過程序也沒關系,Python本身就適合作為程序的入門選擇。
我雖然很早就有寫程序,但那時是興趣使然,從未深入過,正式接觸程序是接觸SEO以後的事情,大約學了幾個小時以後就能寫些簡單的采集程序,到現在只要能想到需求就很少有技術無法實現的。所以沒什麼有基礎沒基礎的問題在,無論什麼的基礎都是需要自己打下的。
其二、Python代碼非常靈活
來看一段非常常用的代碼示例,如果沒有程序基礎的話會看不懂這些代碼,但暫時沒關系,看代碼行數也能對比出代碼簡潔性。
PHP:
1 2 3 4 5 6 7 8<?php
$list_1
=
array
(1,2);
$list_2
=
array
();
foreach
(
$list_1
as
$current
) {
array_push
(
$list_2
,
$current
+1);
}
print_r(
$list_2
);
?>
Python:
1 2 3list_1
=
[
1
,
2
]
list_2
=
[current
+
1
for
current
in
list_1]
print
list_2
Python代碼的第2行叫做“列表推導”,它提供了不少像這樣便利的語言特性可以使得代碼非常簡潔。
盡管語法靈活並非總是好事,靈活的代碼寫法意味著每個人寫出來的代碼往往風格迥異,會把團隊成員的水平差距拉大而不利於團隊開發。但對於小型SEO應用需求一般都是個人開發,此時代碼的書寫效率比起團隊合作性而言更重要。
其三、Python使用廣泛
Python在程序語言裡面受歡迎的程度大約是5-10位左右。排在其之前的有C#, Java, PHP等,但很多時候不是因為它們更強大,而是因為前面提到的原因,它們的代碼顯得相對不是很靈活從而適合團隊開發,所以才更受歡迎。
一般來說,多數提供API的網絡服務都會提供Python接口(如百度網盟、Amazon雲服務等),而另一些比Python某些方面更強的語言則 沒有這麼廣泛的支持度,比如代碼更加靈活一些的GO語言。(多數Web服務的API接口有:C#、PHP、Java、Python、Ruby、Perl, 所以一般情況下選擇其中至少一種語言學習)
Python的模塊也非常多,有許多既有模塊意味著可以少做很多事情。比如下載一個網頁,在很多語言裡面都需要5-10行代碼,而Python僅需兩行:
1 2import
urllib2
print
urllib2.urlopen(
'http://g.cn/'
).read()
另外有意思的是以前Google限制過自己內部使用Python語言進行開發。原因有二:一、因為Python編寫效率高,之前被其過多的運用;二、Python語言的執行效率較慢。而對於SEO,卻正是最需要注重編寫效率而一般無需在意執行效率的。
至此廢話了不少,但興趣往往是學習的最好動力,希望沒有白白廢話。
安裝環境與配置
Python程序和普通程序略有不一樣,通常情況下沒有可以直接在Windows下面雙擊運行的exe文件,雖然並非無法編譯成exe但相對較麻煩,實際運用中很少會去如此操作。
Python程序就是一段文字代碼,保存到後綴名為.py的文件裡面。在電腦安裝了Python的運行環境以後,方可以運行py文件。(其實很多程序都依賴於運行環境,最常見的是.net Framework,只不過這個在Windows上預裝了,一般感覺不到罷了)
對於Windows系統需要安裝運行環境,Linux系統則一般自帶Python無需配置。
Python運行環境的下載鏈接為:http://python.org/getit/
在這個頁面上,通常是在第一個下載鏈接,尋找並下載:Python 2.7.x Windows Installer (Windows binary — does not include source)
需要注意的是下載的最好是2.7.x版本(x代表任意數值,2.7這個大版本都是類似的),而Python 3以上的版本和先前版本區別較大,對於初學者不建議使用。
下載後安裝,沒什麼需要特別注意的地方。一般安裝在默認路徑,即c:python27,不要將之放在目錄層級很深的文件夾,不然運行的時候比較麻煩。
操作系統
前面已經提到,Python可以在Windows及Linux系統下運行,它還支持更多系統,如Mac等,甚至也可以在越獄過的iPhone等設備上面編寫並運行Python程序。
但因為Python的一個主要強大之處在於其模塊的支持,有了模塊就可以方便的做很多事情。而模塊的配置在Windows等系統裡面往往有些麻煩,Linux往往容易得多,所以過了入門階段以後,推薦在Linux環境下進行開發。
Linux環境的搭建有三種選擇:
1.本機安裝Linux系統。適合在Linux下長期工作的人,需要對Linux的基礎知識有一定的了解。主要缺點是總有些Windows裡面才能運行的程序,偶爾需要切換系統。我主要是在這樣的環境下工作。
2.在Windows裡面安裝VMware等虛擬機,然後在虛擬機裡面安裝使用Linux。適合初學者,但因為虛擬機的關系,除非計算機配置很好, 不然兩邊系統的運行效率都會比較低下。且虛擬機不利於塑造學習Linux的氣氛,因為用虛擬機的時候碰到問題,多數人會傾向用Windows解決而非用 Linux,那麼就較難熟悉它。個人不怎麼推薦這種選擇。
3.買一台Linux的VPS,使用SSH遠程操作。主要優點是在工作及家裡都可以很方便的連上服務器,不用每天把程序、數據等隨著U盤之類的帶來 帶去;也可以在不影響Windo