|
網(wǎng)絡(luò)爬蟲(chóng)為搜索引擎從萬(wàn)維網(wǎng)下載網(wǎng)頁(yè)。一般分為傳統(tǒng)爬蟲(chóng)和聚焦爬蟲(chóng)。 傳統(tǒng)爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。通俗的講,也就是通過(guò)源碼解析來(lái)獲得想要的內(nèi)容。 聚焦爬蟲(chóng)的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁(yè)分析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復(fù)上述過(guò)程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析、過(guò)濾,并建立索引,以便之后的查詢(xún)和檢索;對(duì)于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的分析結(jié)果還可能對(duì)以后的抓取過(guò)程給出反饋和指導(dǎo)。 爬蟲(chóng)只是為了獲取數(shù)據(jù),分析、挖掘這些數(shù)據(jù)才是價(jià)值,因此它還可以延伸到數(shù)據(jù)分析、數(shù)據(jù)挖掘等領(lǐng)域,給企業(yè)做決策,所以作為一名爬蟲(chóng)工程師,是大有可為的。 ![]() 那么是不是一定要把上面的知識(shí)全學(xué)完了才可以開(kāi)始寫(xiě)爬蟲(chóng)嗎?當(dāng)然不是,學(xué)習(xí)是一輩子的事,只要你會(huì)寫(xiě) Python 代碼了,就直接上手爬蟲(chóng),好比學(xué)車(chē),只要能開(kāi)動(dòng)了就上路吧,當(dāng)然寫(xiě)代碼可比開(kāi)車(chē)安全多了。 入門(mén)爬蟲(chóng),學(xué)習(xí)正則表達(dá)式并不是必須的,你可以在你真正需要的時(shí)候再去學(xué),比如你把數(shù)據(jù)爬取回來(lái)后,需要對(duì)數(shù)據(jù)進(jìn)行清洗,當(dāng)你發(fā)現(xiàn)使用常規(guī)的字符串操作方法根本沒(méi)法處理時(shí),這時(shí)你可以嘗試了解一下正則表達(dá)式,往往它能起到事半功倍的效果。Python 的 re 模塊可用來(lái)處理正則表達(dá)式。 數(shù)據(jù)清洗完最終要進(jìn)行持久化存儲(chǔ),你可以用文件存儲(chǔ),比如CSV文件,也可以用數(shù)據(jù)庫(kù)存儲(chǔ),簡(jiǎn)單的用 sqlite,專(zhuān)業(yè)點(diǎn)用 MySQL,或者是分布式的文檔數(shù)據(jù)庫(kù) MongoDB,這些數(shù)據(jù)庫(kù)對(duì)Python都非常友好,有現(xiàn)成的庫(kù)支持。 Python操作MySQL數(shù)據(jù)庫(kù) 通過(guò)Python連接數(shù)據(jù)庫(kù)。 網(wǎng)上的爬蟲(chóng)教程多如牛毛,原理大體相同,只不過(guò)是換個(gè)不同的網(wǎng)站進(jìn)行爬取,你可以跟著網(wǎng)上的教程學(xué)習(xí)模擬登錄一個(gè)網(wǎng)站,模擬打卡之類(lèi)的,爬個(gè)豆瓣的電影、書(shū)籍之類(lèi)的。通過(guò)不斷地練習(xí),從遇到問(wèn)題到解決問(wèn)題,這樣的收獲看書(shū)沒(méi)法比擬的。 ![]()
|
|
|
來(lái)自: flyk0tcfb46p9f > 《AI》