天哪居凶,第一次表白竟要獻給一個蟲子和一條蝰蛇致板。
一只爬蟲的起源
在寫第一個爬蟲之前先是發(fā)生了這么一件事右锨,一個關(guān)于女神的故事。
在上個學(xué)期為考試而復(fù)習的那段時間里搬葬,天天早出晚歸奔向圖書館荷腊,去得次數(shù)多了,便總能看到一個很特別的女生急凰,慢慢地女仰,被她的氣質(zhì)所吸引,她便成為了我的第一個女神(現(xiàn)在還是)抡锈,一直到上學(xué)期結(jié)束疾忍,幾乎每天都能看到她,然而我卻因為太內(nèi)向而沒有抓住機會認識她床三,這個學(xué)期開學(xué)到現(xiàn)在一罩,已經(jīng)很少在圖書館看到她了,直到有一次撇簿,也只是看到她是從哪一層樓下來(我還是沒有把握住機會聂渊,哭...),出于想要更多地了解她四瘫,但是她叫什么名字汉嗽,在哪個班我都一無所知,好奇心總是能使人腦洞大開找蜜,于是用python寫下了人生中的第一個爬蟲饼暑,爬下了那一層樓以上的教室所在上課的同學(xué)(學(xué)校課表信息公開),然后再用這個學(xué)號信息去學(xué)校教務(wù)系統(tǒng)獲取到這些同學(xué)的照片洗做,經(jīng)過比對弓叛,終于得到了女神的名字,班級竭望,以及借閱信息邪码。
嗯...不錯,女神喜歡的書我也喜歡咬清。
初識爬蟲小分隊
該不該擱下重重的殼
尋找到底哪里有藍天
在經(jīng)過上面的這樣一件事后,一直喊了很久的口號——把python變成日常娛樂項奴潘,終于是要落地了旧烧,也真得很幸運遇見了爬蟲小分隊,特別感謝的有@liang, @程老哥画髓,@攀攀老哥掘剪,@彭老師,每次和他們請教都特別有收獲奈虾,并且在這一段時間的學(xué)習里也能夠切實地感覺到自己的進步夺谁。
原來我的爬蟲腳本是這樣的:
最簡單的單線程廉赔,只會用beautifulsoup
,不會反ban策略匾鸥,當時爬1000個數(shù)據(jù)便要差不多一個小時蜡塌,也沒有了解過數(shù)據(jù)庫.
現(xiàn)在的腳本是這樣的:
雖然速度也沒有快多少,但是較之前還是挺滿足的勿负。
這個是在python上的進步馏艾,在心態(tài)上也有一些改變,正如前面的歌詞所說奴愉,該不該擱下重重的殼去尋找藍天琅摩?種一棵樹最好的時間是在十年前,其次就是現(xiàn)在锭硼,我們很多時候都是在背負著重重的殼前進房资,或者干脆不動,背負著來自外界環(huán)境的看法檀头,背負著對自己的懷疑志膀,背負著子烏虛有的假設(shè)。在追女神(還沒行動...)時總是等機會流失后才后悔留下遺憾鳖擒,在Python路上在懷疑一個會計學(xué)編程的必要性溉浙。但是當真正做起來,會發(fā)現(xiàn)和自己所想象的還是不一樣的蒋荚,比如在小分隊的一個月中自己竟然參加了一個計算機系組織的比賽戳稽,自己竟然能夠站在舞臺上面對一大群的計算機系的同學(xué)講解自己的數(shù)據(jù)分析PPT然后還拿了個三等獎,這是內(nèi)向的自己從來沒有想過的期升。在學(xué)習爬蟲的過程中惊奇,也讓自己的一些思維方式有了改變,比如xpath解析法播赁,面向?qū)ο蟮乃枷胨汤桑壿嫽绦蚧乃枷耄际翘貏e實用的容为∨倚颍總之,還沒向女神表白坎背,就先和這一只蟲子和一條蝰蛇表白下吧替劈。python,我愿意獻出我生命中的一部分的美好時光與你共同進化得滤,陪伴便是最長久的告白陨献。
一只可進化的爬蟲
我要一步一步往上爬
在最高點乘著葉片往前飛
一個起點,一個終點...或美好懂更,或殘酷眨业,待觀眾一一點評
唯有過程急膀,自己心自知,感至深龄捡。
一只可進化的爬蟲經(jīng)歷了那些過程呢卓嫂?
可進化的爬蟲1.0
一只爬蟲,需要能爬現(xiàn)在看得到的東西墅茉,也要能爬下一步能看得到的東西
異步加載命黔,在爬蟲小分隊的第一課,在這一課中悍募,也是寫爬蟲的第一步,就是分析URL是如何構(gòu)成的
可進化的爬蟲1.5
讓解析更多樣洋机,在這課中,學(xué)習了xpath
的基本用法喜鼓,之前只是會Beautifulsoup
的使用衔肢,對于xpath
的原理也是不理解庄岖,事實證明角骤,掌握多種解析方法,可以更加快速有效地提取出自己想要的信息
可進化的爬蟲2.0
讓爬蟲快一點背桐,爬蟲小分隊第三課蝉揍,初步學(xué)習scrapy
框架的用法链峭,為什么要用框架又沾?一方面是快一點,另一方面是使爬蟲更有邏輯與結(jié)構(gòu)撼短。
可進化的爬蟲3.0
返回的數(shù)據(jù)有點不一樣哦,第四課學(xué)習了json的解析,json的解析也是爬蟲很常用的喂柒,特別是Ajax
越來越廣泛的運用禾嫉,返回的數(shù)據(jù)很多都是json格式的蚊丐。
可進化的爬蟲4.0
可進化的爬蟲4.5
讓爬蟲飛起來,一只好的爬蟲要能夠翻過高山跨過海麦备,在這一課中,學(xué)習了一些常見的反Ban的方法凛篙,經(jīng)過測試,代理ip的方法不太好用呛梆,原因是代理ip太容易失效了。還有一些方法是后面才知道的纹腌,沒有及時添加滞磺,有tor IP代理升薯,cookies池击困。
可進化的爬蟲5.0
讓爬蟲長一點,汗...實在想不到一個描述詞责语,這一課學(xué)習了將數(shù)據(jù)存到數(shù)據(jù)庫中目派,一開始寫的爬蟲爬取的數(shù)據(jù)是存在excel中坤候,后來因為當數(shù)據(jù)太多的時候企蹭,查找速度太慢了,所以改用了mysql徒河,最近試了下mongodb,一個是sql顽照,另一個是nosql。
可進化的爬蟲6.0
爬蟲影分身代兵,第八課的學(xué)習,多線程異步爬蟲裳擎,用了多線程思币,爬蟲的速度提升了很多,前面的成果圖片便是開了40個線程谷饿,生成5個數(shù)據(jù)表。
可進化的爬蟲7.0
爬蟲公司各墨,分布式爬蟲,這一課先做個預(yù)告恃轩,未完待續(xù)黎做,一個爬蟲Boss,帶領(lǐng)許多爬蟲員工蒸殿,想想就很美好。