1. 網(wǎng)絡(luò)爬蟲(chóng)的定義
1.1 爬蟲(chóng)是什么?
爬蟲(chóng)的本質(zhì)就是模仿人類(lèi)自動(dòng)訪問(wèn)網(wǎng)站的程序,你在瀏覽器中做的大部分動(dòng)作基本都可以通過(guò)網(wǎng)絡(luò)爬蟲(chóng)程序來(lái)實(shí)現(xiàn)。
網(wǎng)絡(luò)爬蟲(chóng)指的是能夠自動(dòng)化訪問(wèn)網(wǎng)站的程序,其目的一般是提取和保存網(wǎng)頁(yè)信息。
爬蟲(chóng)能做很多事,它結(jié)合數(shù)據(jù)分析可以做商業(yè)分析,還可以給應(yīng)用程序的開(kāi)發(fā)提供數(shù)據(jù)支持,比如:爬二手房成交均價(jià)是多少?節(jié)日期間酒店的價(jià)格…等等。
在數(shù)據(jù)量爆發(fā)式增長(zhǎng)的互聯(lián)網(wǎng)時(shí)代,網(wǎng)站與用戶的溝通,本質(zhì)上就是數(shù)據(jù)的交換。以百度為例,你在搜索的時(shí)候會(huì)發(fā)現(xiàn)每個(gè)搜索結(jié)果下面都有一個(gè)百度快照。
點(diǎn)擊百度快照,你會(huì)發(fā)現(xiàn)網(wǎng)址的開(kāi)頭有 baidu 這個(gè)詞,也就是說(shuō)這個(gè)網(wǎng)頁(yè)屬于百度。
這是因?yàn)椋俣冗@家公司會(huì)源源不斷地把千千萬(wàn)萬(wàn)個(gè)網(wǎng)站爬取下來(lái),存儲(chǔ)在自己的服務(wù)器上。
你在百度搜索的本質(zhì)就是在它的服務(wù)器上搜索信息,你搜索到的結(jié)果是一些超鏈接,在超鏈接跳轉(zhuǎn)之后你就可以訪問(wèn)其它網(wǎng)站了。
1.2 網(wǎng)絡(luò)信息的爬取流程
網(wǎng)絡(luò)爬蟲(chóng)的流程主要可以分為三步,分別是:獲取網(wǎng)頁(yè)、解析網(wǎng)頁(yè)以及存儲(chǔ)數(shù)據(jù)。
獲取網(wǎng)頁(yè),顧名思義就是獲取網(wǎng)頁(yè)信息,在網(wǎng)絡(luò)爬蟲(chóng)技術(shù)中這里獲取的就是網(wǎng)頁(yè)源代碼。
解析網(wǎng)頁(yè),指的是從網(wǎng)頁(yè)源代碼中提取想要的數(shù)據(jù),由于網(wǎng)頁(yè)的結(jié)構(gòu)有一定的規(guī)則,配合 Python 的一些第三方庫(kù)我們可以高效地從中提取網(wǎng)頁(yè)數(shù)據(jù)。
存儲(chǔ)數(shù)據(jù),就是將數(shù)據(jù)存儲(chǔ)下來(lái)。
2. 學(xué)習(xí)指南
2.1 爬蟲(chóng)學(xué)習(xí)路徑
2.2 爬蟲(chóng)課程的學(xué)習(xí)誤區(qū)
誤區(qū)1:認(rèn)為同一個(gè)代碼可以爬取不同網(wǎng)頁(yè)的信息。
爬蟲(chóng)程序不是萬(wàn)能鑰匙。不同網(wǎng)頁(yè)結(jié)構(gòu)的爬蟲(chóng)代碼也是不一樣的,我們要學(xué)習(xí)探索網(wǎng)頁(yè)結(jié)構(gòu),在各色各樣的網(wǎng)站中找到它的爬取方法。
誤區(qū)2:認(rèn)為網(wǎng)絡(luò)上的所有信息都可以使用爬蟲(chóng)技術(shù)獲取。
網(wǎng)絡(luò)上的信息并非都能隨意使用。濫用爬蟲(chóng)程序可能會(huì)侵犯別人隱私,占用網(wǎng)站資源,甚至?xí)|犯法律風(fēng)險(xiǎn),引發(fā)牢獄之災(zāi)。在網(wǎng)絡(luò)世界中,有一個(gè)專(zhuān)門(mén)的 Robots 協(xié)議來(lái)規(guī)范爬蟲(chóng),維護(hù)網(wǎng)絡(luò)秩序。它可以告訴網(wǎng)絡(luò)爬蟲(chóng)程序哪些內(nèi)容是可以獲取的,哪些內(nèi)容是不能獲取的。
2.3 爬蟲(chóng)學(xué)習(xí)方法
在爬蟲(chóng)課程中將深入學(xué)習(xí)一些 Python 模塊與庫(kù)的使用,除此之外還會(huì)學(xué)習(xí)大量的網(wǎng)絡(luò)請(qǐng)求、爬蟲(chóng)的原理知識(shí)以及工具使用。
【學(xué)習(xí)方法】
1. 使用畫(huà)圖的方法去學(xué)習(xí)網(wǎng)絡(luò)原理
爬蟲(chóng)的本質(zhì)是通過(guò)程序模仿人類(lèi)上網(wǎng)的過(guò)程,你必須了解一些基本的網(wǎng)絡(luò)原理才能寫(xiě)好爬蟲(chóng)程序。
對(duì)于這些網(wǎng)絡(luò)原理,你更需要的是去理解,而不是死記硬背。當(dāng)你感覺(jué)理解起來(lái)很痛苦時(shí),你可以動(dòng)手將你的理解畫(huà)出來(lái)。
比如網(wǎng)絡(luò)請(qǐng)求,它指的是我們從瀏覽器點(diǎn)開(kāi)一個(gè)網(wǎng)絡(luò)鏈接再到我們看到實(shí)際網(wǎng)頁(yè)這一過(guò)程中的工作原理。這些工作原理如下圖:
以上圖為例,這一方法并不需要什么繪畫(huà)技巧,重要的是將你的想法畫(huà)出來(lái),以此來(lái)加深你對(duì)這一知識(shí)點(diǎn)的印象。
2. 查詢(xún)網(wǎng)絡(luò)文檔去學(xué)習(xí) HTML 語(yǔ)言
由于爬蟲(chóng)獲取的信息大部分都是網(wǎng)頁(yè)的源代碼,這些源代碼基本都是使用 HTML 語(yǔ)言編寫(xiě)的,所以 HTML 語(yǔ)言對(duì)于爬蟲(chóng)的學(xué)習(xí)十分重要。對(duì)于HTML只需要簡(jiǎn)單理解 HTML 語(yǔ)言的標(biāo)簽結(jié)構(gòu),遇到不熟悉的標(biāo)簽再去網(wǎng)上查詢(xún)即可滿足爬蟲(chóng)對(duì)于 HTML 語(yǔ)言掌握水平的要求。
3. 通過(guò)實(shí)踐去學(xué)習(xí)瀏覽器開(kāi)發(fā)者工具的使用
上圖展示的是瀏覽虎撲網(wǎng)時(shí),打開(kāi)瀏覽器開(kāi)發(fā)者工具查看網(wǎng)頁(yè)元素。這部分的學(xué)習(xí)專(zhuān)注于實(shí)踐,因?yàn)閹缀跛械臑g覽器都有開(kāi)發(fā)者工具,我們可以在日常網(wǎng)上沖浪的時(shí)候打開(kāi)它,熟悉基本操作。
4. 爬蟲(chóng)相關(guān)的模塊與庫(kù)需要堅(jiān)持代碼練習(xí)
對(duì)于 Python 模塊與庫(kù)的知識(shí),要通過(guò)練習(xí)、實(shí)操的方式熟悉這些代碼。
【總結(jié)】
end
-
瀏覽器
+關(guān)注
關(guān)注
1文章
1009瀏覽量
35226 -
程序
+關(guān)注
關(guān)注
116文章
3756瀏覽量
80751 -
爬蟲(chóng)
+關(guān)注
關(guān)注
0文章
82瀏覽量
6813
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論