Python是一種功能很強大的語言,對于零基礎(chǔ)學(xué)習(xí)Python還是有難度的,但只要學(xué)習(xí)方法對,入門還是很快噠。下面介紹幾種學(xué)習(xí)Python的方法。以下是小編為你整理的python+類方法入門教程 ?
首先是書籍,通過書籍學(xué)習(xí),雖然速度會有些慢,但知識具體,可以掌握很多細節(jié),一旦入門后,后面進步就很快了,下面介紹給大家一本書,是以前我學(xué)習(xí)Python時用的書,感覺還挺不錯噠。
?
然后就是借助網(wǎng)絡(luò)學(xué)習(xí),網(wǎng)上有很多視頻課程,而且有很多是免費噠,網(wǎng)絡(luò)視頻比較直觀,入門快。給大家推薦一個視頻,網(wǎng)易云課堂里有個零基礎(chǔ)入門學(xué)習(xí)python的視頻,是免費的,我之前也看過,挺不錯噠 ?
還有就是加一些qq群或是論壇,里面的知識雖然不全面,但對于知識的擴寬還是很有幫助噠。 ?
*說說我的學(xué)習(xí)經(jīng)驗,書籍學(xué)習(xí)的方法比較扎實,網(wǎng)絡(luò)視頻學(xué)習(xí)的方法入門比較快,論壇可以作為知識的補充渠道,當然,如果想學(xué)精,唯有多多實踐一條途徑。 ?
優(yōu)點是什么
Python世界最棒的地方之一,就是大量的第三方程序包。同樣,管理這些包也非常容易。按照慣例,會在 requirements.txt 文件中列出項目所需要的包。每個包占一行,通常還包含版本號。這里有一個例子 ?
Python 程序包有一個缺陷是,它們默認會進行全局安裝。我們將要使用一個工具,使我們每個項目都有一個獨立的環(huán)境,這個工具叫virtualenv。我們同樣要安裝一個更高級的包管理工具,叫做pip,他可以和virtualenv配合工作。 ?
首先,我們需要安裝pip。大多數(shù)python安裝程序已經(jīng)內(nèi)置了easy_install(python默認的包管理工具),所以我們就使用easy_install pip來安裝pip。這應(yīng)該是你*一次使用easy_install 了。如果你并沒有安裝easy_install ,在linux系統(tǒng)中,貌似從python-setuptools 包中可以獲得。 ?
如果你使用的Python版本高于等于3.3, 那么Virtualenv 已經(jīng)是標準庫的一部分了,所以沒有必要再去安裝它了。 ?
下一步,你希望安裝virtualenv和virtualenvwrapper。Virtualenv使你能夠為每個項目創(chuàng)造一個獨立的環(huán)境。尤其是當你的不同項目使用不同版本的包時,這一點特別有用。Virtualenv wrapper 提供了一些不錯的腳本,可以讓一些事情變得容易。 ?
當virtualenvwrapper安裝后,它會把virtualenv列為依賴包,所以會自動安裝。 ?
打開一個新的shell,輸入mkvirtualenv test 。如果你打開另外一個shell,則你就不在這個virtualenv中了,你可以通過workon test 來啟動。如果你的工作完成了,可以使用deactivate 來停用。 ?
循環(huán)語句的應(yīng)用
舉個例子如果我們要生產(chǎn)一個list [1,2,3,4,5,6,7,8,9,10] 我們可以使用range(1,11)來表示,如果直接寫range(11) 是從0開始,我們可以演示一下。print range(11)print range(1,11)print range(8,11) ?
然后我們想一下 如果要表示[1*1,2*2,3*3,4*4.....100*100]要怎么做呢?好肯定是要利用到循環(huán)的概念,正常的寫法是這樣的: ?
a = [] #定義一個空的列表for x in range(1,101): #假設(shè)X在從1開始循環(huán)到100 a.append(x * x) # 進行一次添加操作 x* xprint a
?
作為一個程序員,就要是使用最短的代碼*效的完成程序表達的功能,如果使用循環(huán)寫的話會感覺比較繁瑣,特別是邏輯能力不太強的朋友,我們可以使用一行語句代替循環(huán),我們測試看看 ?
print [x * x for x in range(1,101)] ?
當然除了計算之外,我們還可以做一些比較特殊的字符串操作,比如: ?
print [m + n for m in 'ABC' for n in 'XYZ'] ?
我們可以看到我們把A B C 都加了一遍XYZ 如果要用正常的循環(huán)也是可以完成的就是了,這樣的操作更加簡單便捷。 ?
常用爬蟲案例
首先我們先新建一個頻道,我給它命名為大眾點評,然后在頻道配置里輸入我們想要爬取數(shù)據(jù)的網(wǎng)址,需要在頻道配置處輸入想要得到數(shù)據(jù)的網(wǎng)址,大眾點評需要開啟cookie,“基本配置”-“頻道屬性”里能開啟cookie。 ?
現(xiàn)在默認模板(1)就是我們要的網(wǎng)站頁面,鼠標放在醫(yī)院標題處如圖,從左下角能看到醫(yī)院的網(wǎng)址鏈接。 ?
現(xiàn)在點一下右上角的采集預(yù)覽,我們能得到整個頁面的所有網(wǎng)頁鏈接,下拉滾動條到這個位置就會發(fā)現(xiàn)跟上圖相同格式的鏈接,這就是我們需要的所有醫(yī)院的鏈接。 ?
我們用不到的需要過濾一下,可以通過地址過濾和標題過濾方法篩選。 ?
點擊軟件右上角模板抽取配置里面的鏈接抽取,里面有地址過濾和標題過濾兩個選項,點擊地址過濾,過濾規(guī)則選擇包含,過濾串內(nèi)輸入想要得到的醫(yī)院鏈接,后面這串數(shù)字我們用“d”表示,用“e”表示結(jié)束,例如https://www.dianping.com/shop/de,這樣就能采集網(wǎng)頁內(nèi)所有這種格式的網(wǎng)頁鏈接。
當我們想要采集的網(wǎng)頁下面有翻頁的鏈接,就必須配置翻頁。除了在右上角默認模板處抽取我們想要的得到的醫(yī)院鏈接外,還要再新建一個鏈接抽取,抽取頁面翻頁的地址。
我們繼續(xù)從采集預(yù)覽處得到翻頁的鏈接,過濾規(guī)則選擇包含,通過觀察發(fā)現(xiàn)幾個鏈接的相同點,輸入到過濾串里就能得到想要的翻頁鏈接了。 ?
下面我們隨便點進一個醫(yī)院主頁內(nèi),復(fù)制鏈接建立下一層級模板,在默認模板(2)的示例地址內(nèi)輸入醫(yī)院主頁的鏈接,得到模板二 ?
因為我們需要采集該醫(yī)院所有用戶評論,所以我們找到下面的“更多點評”,通過剛剛地址過濾的方法,過濾出更多點評的鏈接,并建立模板(3),示例地址輸入剛剛過濾的得到的更多點評的網(wǎng)址。 ?
注:點擊鏈接抽取,看左下角關(guān)聯(lián)模板處,一定要關(guān)聯(lián)到下一層級的模板,如果是翻頁的鏈接抽取,要關(guān)聯(lián)自身模板,否則會數(shù)據(jù)采集失敗。