8.1-8.6爬蟲+基礎(chǔ)python學(xué)習(xí)

應(yīng)氣人的鄧小豬的要求,寫總結(jié)P扌怠V耗痢!?衔邸G痰ァ!

前情提要:

暑假學(xué)習(xí)第一周總結(jié):本周主要目標(biāo)在于學(xué)習(xí)基礎(chǔ)的爬蟲蹦渣,了解什么是爬蟲哄芜,如何爬取網(wǎng)頁上的數(shù)據(jù)并成功實(shí)現(xiàn)簡(jiǎn)單的爬蟲。(學(xué)習(xí)借鑒他人簡(jiǎn)書爬蟲知識(shí))
完成情況:0.5%(哈哈哈哈哈哈哈哈哈哈哈哈)

故事結(jié)局

最終完成成果:

  1. 配置python環(huán)境和爬蟲基本環(huán)境
  2. 完成所看簡(jiǎn)書一二部分內(nèi)容柬唯,第三部分內(nèi)容基本理解忠烛,但并沒有實(shí)現(xiàn)代碼部分(因?yàn)槲也欢趺从媚莻€(gè)庫!Hǘ骸C朗冤议!一點(diǎn)都不懂!J病K∷帷!)
    由于看過別人代碼之后雖然大致明白爬蟲機(jī)理胯陋,但是自己基礎(chǔ)知識(shí)太薄弱并不懂那些庫函數(shù)的使用吧啦吧啦蕊温,so,實(shí)現(xiàn)簡(jiǎn)單爬蟲轉(zhuǎn)變?yōu)閷W(xué)習(xí)基礎(chǔ)知識(shí)遏乔,正所謂厚積薄發(fā)义矛,要有扎實(shí)的基礎(chǔ)知識(shí)才可以寫出代碼(哈哈哈哈哈哈哈哈)所以本渣渣開始學(xué)習(xí)廖雪峰大佬的python2.7教程(本人所用python環(huán)境為2.7)
  3. 學(xué)習(xí)python基礎(chǔ)知識(shí)(學(xué)了一半,學(xué)到函數(shù)式編程)

接下來盟萨,開始正式的知識(shí)回顧啦(哈哈哈哈哈):

故事發(fā)展

配置環(huán)境

本機(jī)所用配置:python:2.7版本凉翻,win7電腦環(huán)境,windows環(huán)境下
爬蟲環(huán)境:

  1. 四個(gè)依賴的庫文件:
  • beautifulsoup庫:快速處理抓取下來的數(shù)據(jù)捻激。
  • requests模塊:主要負(fù)責(zé)網(wǎng)絡(luò)功能制轰。
  • lxml庫:配合beautifulsoup庫使用。
  • pymongo庫:和mongoDB數(shù)據(jù)庫交互胞谭,數(shù)據(jù)存儲(chǔ)在mongoDB數(shù)據(jù)庫中垃杖。
  1. pip:利用pip命令安裝庫文件
  2. mongoDB數(shù)據(jù)庫:存放爬取的數(shù)據(jù)
安裝
  1. 安裝pip: 上python官網(wǎng)下載pip安裝包,具體過程如網(wǎng)址[pip安裝]http://www.tuicool.com/articles/eiM3Er3
    安裝過程中在添加pip環(huán)境變量這里丈屹,折騰了半天都不行调俘,特別注意:按照步驟安裝pip添加環(huán)境變量時(shí)要將pip.exe的路徑加入到path環(huán)境變量中。
    在利用python setup.py install命令安裝pip時(shí)旺垒,并沒有安裝到自己所解壓縮的文件夾下脉漏,而是安裝在本機(jī)安裝python時(shí)的python文件夾下,因此正確的路徑應(yīng)該是某盤:\python安裝文件夾\Scripts文件夾袖牙,在這個(gè)路徑下應(yīng)該可以找到pip.exe文件(具體情況具體分析)
  2. 利用pip命令安裝庫文件(具體命令參考簡(jiǎn)書爬蟲教程)
  3. 安裝mongoDB
    至此侧巨,環(huán)境配置完成,可以開始正式學(xué)習(xí)爬蟲了?(?òωó?)?

教程三簡(jiǎn)單爬蟲demo分析

給了一個(gè)小代碼來分析對(duì)瓜子二手網(wǎng)的車輛信息的爬取和檢索鞭达,在這個(gè)部分雖然代碼可以理解司忱,但是代碼中具體的函數(shù)如何使用并不了解,而且python語法太弱所以大致看懂怎么回事之后開始python語法的具體學(xué)習(xí)畴蹭。

這個(gè)demo顯示了爬蟲的大致的流程:

  • 首先:要找到我們要爬取的數(shù)據(jù)的URL坦仍,對(duì)于要爬取的網(wǎng)頁地址進(jìn)行分析找到其中的規(guī)律,例如瓜子網(wǎng)車輛信息有多頁叨襟,第一頁為o1,第二頁為o2繁扎,以此類推。可以依據(jù)找到的規(guī)律構(gòu)建一個(gè)list梳玫,然后對(duì)每個(gè)地址進(jìn)行爬取爹梁。
  • 對(duì)每個(gè)地址爬取的操作:得到網(wǎng)頁URL后,對(duì)具體某輛車進(jìn)行分析提澎,獲取他的CSS地址姚垃,對(duì)CSS地址進(jìn)行過濾分析,去掉無用的前綴盼忌,獲取我們所需要的車輛信息的的CSS地址鏈积糯,例如價(jià)格,然后對(duì)其進(jìn)行處理谦纱。通過庫函數(shù)和地址獲取其中的有用信息看成。

這是一個(gè)簡(jiǎn)單的爬蟲demo,整個(gè)原理和代碼不難理解跨嘉,接下來是熟悉庫函數(shù)和學(xué)會(huì)如何使用川慌。

python基礎(chǔ)知識(shí)學(xué)習(xí)

剛開始想能看懂就行,后來發(fā)現(xiàn)不行偿荷,自己的語法太弱,沒有怎么學(xué)過唠椭,所以開始大致的看python基礎(chǔ)教程跳纳,是廖雪峰的python2.7教程[python教程]https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

看到了函數(shù)式編程這一部分,具體知識(shí)教程里有贪嫂,此處僅寫一下再看教程時(shí)自己動(dòng)手試驗(yàn)得到的一些小知識(shí)和學(xué)到的一些新函數(shù)寺庄。

  • {'a':1,'b':2,'c':3}['a'] = 1
    開始不懂這個(gè)代碼為什么這么寫,結(jié)果為什么是1力崇,然后發(fā)現(xiàn)它等于一下代碼:
  t = {'a':1,'b':2,'c':3} 
  t['a'] = 1

其實(shí)就是求一個(gè)字典里某個(gè)key的value值斗塘。

  • t.pop('a')函數(shù)是返回'a'的value值:1
    因此注意一下二者的區(qū)別(一不小心就搞錯(cuò)了-_-):
t = {'a':1,'b':2,'c':3}.pop('a') //t=4
t = {'a':1,'b':2,'c':3}
s = t.pop(4)   //這時(shí)t是一個(gè)list,s=4
  • 明白可變對(duì)象與不可變對(duì)象的區(qū)別亮靴,重點(diǎn)馍盟!重點(diǎn)!重點(diǎn)茧吊!
    字符串是不可變對(duì)象贞岭!
s = 'abc'
t = s
s = 'abcd'
//t='abc',s='abcd'

在創(chuàng)建字符串時(shí),python先在內(nèi)存里創(chuàng)建一個(gè)'abc'變量搓侄,然后將s指向的地址指向它瞄桨,接著創(chuàng)建了t變量,t = s讶踪,將t指向的地址指向s所指向的地址即'abc'變量而非s芯侥,接著s = 'abcd',python在內(nèi)存里創(chuàng)建'abcd'變量,改變s所指向的地址柱查。(好繞口廓俭,廖雪峰教程里有具體的圖,清晰明了物赶,具體如下)

字符串不可變解釋
  • 關(guān)于字符串的幾個(gè)函數(shù):upper(),lower(),capitalize(),capwords(),strip()
  1. upper()和lower(): upper()將字符串的各個(gè)字母大寫白指,lower()則是小寫,結(jié)合上面的字符串不可變性酵紫,有個(gè)小程序理解:
t = 'abc'
t.upper()  //t = 'abc'

在做廖雪峰大大布置的課后題時(shí)發(fā)現(xiàn)的問題告嘲,本來以為t.upper()后t會(huì)變成'ABC',實(shí)際運(yùn)行結(jié)果不對(duì)奖地,還是'abc'橄唬,然后明白過來t.upper()在內(nèi)存中先建了一個(gè)變量'ABC',然而t所指向的內(nèi)容依舊不變参歹。

  1. capitalize()方法: 將一個(gè)字符串的第一個(gè)字母大寫仰楚,其余字母變?yōu)樾懀纾?/li>
s = 'abcDEf'
s1 = ' abcDEf'
s.capitalize()  //結(jié)果為'Abcdef'
s1.capitalize() //結(jié)果為' abcdef'  第一個(gè)字符是空格
  1. capwords()函數(shù):這個(gè)函數(shù)的具體過程如下:先調(diào)用s.split()將字符串s分解成單詞犬庇,然后調(diào)用s.capitalize()函數(shù)將每個(gè)單詞的首字母大寫其他字母小寫僧界,然后在調(diào)用s.join()函數(shù)將單詞連接起來成為句子,他有兩個(gè)參數(shù),第一個(gè)參數(shù)是字符串s臭挽,第二個(gè)參數(shù)是分解成單詞時(shí)的分隔符捂襟,默認(rèn)為空格
s = 'pigDeng iS a BIG piG'
capwords(s)  // 結(jié)果: 'Pigdeng Is A Big Pig'
capwords(s,None)  // 結(jié)果: 'Pigdeng Is A Big Pig'
capwords('abcDacdaDEf',a) //結(jié)果: 'aBcdaCdaDef' a是分隔符欢峰,不做處理葬荷,可以看作是空格
  1. strip()函數(shù):去掉字符串頭尾指定的字符
s = '0000pigDeng is a big pig000'\
s.strip('0') //結(jié)果:'pigDeng is a big pig'

綜上,python包含的機(jī)制太高級(jí)纽帖,可以很輕松的調(diào)用代碼宠漩,不用亂七八糟寫一通確實(shí)還挺方便哈哈哈哈哈。

阿阿阿阿阿阿阿阿阿阿總結(jié)終于結(jié)束了懊直,累死爸爸了扒吁,下周繼續(xù)!睡覺了室囊,呼呼呼~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瘦陈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子波俄,更是在濱河造成了極大的恐慌晨逝,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懦铺,死亡現(xiàn)場(chǎng)離奇詭異捉貌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門趁窃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牧挣,“玉大人,你說我怎么就攤上這事醒陆∑俟梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵刨摩,是天一觀的道長寺晌。 經(jīng)常有香客問我,道長澡刹,這世上最難降的妖魔是什么呻征? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮罢浇,結(jié)果婚禮上陆赋,老公的妹妹穿的比我還像新娘。我一直安慰自己嚷闭,他們只是感情好攒岛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布魂务。 她就那樣靜靜地躺著萄喳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贞铣。 梳的紋絲不亂的頭發(fā)上胜蛉,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天挠进,我揣著相機(jī)與錄音色乾,去河邊找鬼誊册。 笑死,一個(gè)胖子當(dāng)著我的面吹牛暖璧,可吹牛的內(nèi)容都是我干的案怯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼澎办,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嘲碱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起局蚀,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤麦锯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后琅绅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扶欣,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了料祠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骆捧。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖髓绽,靈堂內(nèi)的尸體忽然破棺而出敛苇,到底是詐尸還是另有隱情,我是刑警寧澤顺呕,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布枫攀,位于F島的核電站,受9級(jí)特大地震影響塘匣,放射性物質(zhì)發(fā)生泄漏脓豪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一忌卤、第九天 我趴在偏房一處隱蔽的房頂上張望扫夜。 院中可真熱鬧,春花似錦驰徊、人聲如沸笤闯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颗味。三九已至,卻和暖如春牺弹,著一層夾襖步出監(jiān)牢的瞬間浦马,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工张漂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晶默,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓航攒,卻偏偏與公主長得像磺陡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漠畜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容