易企互聯(lián)網(wǎng)站建設(shè)南寧seo結(jié)算
目錄
一、爬蟲(chóng)是什么
二、爬蟲(chóng)過(guò)程
(1)獲取網(wǎng)頁(yè)
(2)提取信息
(3)保存數(shù)據(jù)
三、爬蟲(chóng)可爬的數(shù)據(jù)
四、爬蟲(chóng)問(wèn)題
一、爬蟲(chóng)是什么
互聯(lián)網(wǎng),后面有個(gè)網(wǎng)字,我們可以把它看成一張蜘蛛網(wǎng)。
爬蟲(chóng),后面有個(gè)蟲(chóng)子,我們可以把它看成蜘蛛。
爬蟲(chóng)之于互聯(lián)網(wǎng),就是蜘蛛之于蜘蛛網(wǎng)。
蜘蛛每爬到一個(gè)節(jié)點(diǎn),就是爬蟲(chóng)訪(fǎng)問(wèn)了一個(gè)網(wǎng)頁(yè)。
用正式的話(huà)來(lái)說(shuō),
爬蟲(chóng),就是自動(dòng)提取、保存網(wǎng)頁(yè)信息的程序。
二、爬蟲(chóng)過(guò)程
(1)獲取網(wǎng)頁(yè)
獲取網(wǎng)頁(yè),就是獲取網(wǎng)頁(yè)的源代碼。
(注:因?yàn)樵创a包含各種信息,所以要獲取源代碼)
(2)提取信息
提取信息,一般采用正則表達(dá)式。
另外,由于網(wǎng)頁(yè)結(jié)構(gòu)具有一定規(guī)則,所以有的是采用其他方式提前的
如:
Beautiful Soup、pyquery、lxml
(3)保存數(shù)據(jù)
保存數(shù)據(jù),可以保存為T(mén)XT文件、JSON文件
當(dāng)然,也可以保存到數(shù)據(jù)庫(kù):MySQL、MongoDB等。
三、爬蟲(chóng)可爬的數(shù)據(jù)
在以前的文章中,我們知道網(wǎng)頁(yè)中的信息都藏在URL中,所以一般來(lái)說(shuō),只要是URL的數(shù)據(jù),我們就可以抓取。
四、爬蟲(chóng)問(wèn)題
最常見(jiàn)的一個(gè)問(wèn)題,就是無(wú)法爬出完整數(shù)據(jù)。
即,我們爬出來(lái)的數(shù)據(jù),和我們看到的數(shù)據(jù)并不一樣,這是怎么回事呢?
因?yàn)?#xff0c;在該網(wǎng)站的HTML代碼中
可能引入了app.js文件,其負(fù)責(zé)整個(gè)文件的渲染。
而當(dāng)瀏覽器打開(kāi)這個(gè)界面時(shí),首先加載HTML內(nèi)容
然后引入app.js文件,并發(fā)起請(qǐng)求。
然后執(zhí)行該文件中的JavaScript代碼,
而JavaScript代碼會(huì)改變HTML中的節(jié)點(diǎn),并添加內(nèi)容,最后得到內(nèi)容
但是當(dāng)我們使用庫(kù):urllib和request請(qǐng)求界面時(shí),只得到HTML代碼
但它不會(huì)繼續(xù)加載JavaScript文件,所以我們就無(wú)法載入完整內(nèi)容。
至于解決辦法,我們會(huì)在后續(xù)文章中一一道來(lái)。