App下載

python為什么叫爬蟲(chóng)?

猿友 2021-02-03 14:07:23 瀏覽數(shù) (5118)
反饋

爬蟲(chóng)通常指的是網(wǎng)絡(luò)爬蟲(chóng),就是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本。因?yàn)?python 的腳本特性,python 易于配置,對(duì)字符的處理也非常靈活,加上 python 有豐富的網(wǎng)絡(luò)抓取模塊,所以?xún)烧呓?jīng)常聯(lián)系在一起。

在進(jìn)入文章之前,我們首先需要知道什么是爬蟲(chóng)。爬蟲(chóng),即網(wǎng)絡(luò)爬蟲(chóng),大家可以理解為在網(wǎng)絡(luò)上爬行的一只蜘蛛,互聯(lián)網(wǎng)就比作一張大網(wǎng),而爬蟲(chóng)便是在這張網(wǎng)上爬來(lái)爬去的蜘蛛,如果它遇到自己的獵物(所需要的資源),那么它就會(huì)將其抓取下來(lái)。比如它在抓取一個(gè)網(wǎng)頁(yè),在這個(gè)網(wǎng)中他發(fā)現(xiàn)了一條道路,其實(shí)就是指向網(wǎng)頁(yè)的超鏈接,那么它就可以爬到另一張網(wǎng)上來(lái)獲取數(shù)據(jù)。不容易理解的話(huà)其實(shí)可以通過(guò)下面的圖片進(jìn)行理解:

因?yàn)?python 的腳本特性,python 易于配置,對(duì)字符的處理也非常靈活,加上 python 有豐富的網(wǎng)絡(luò)抓取模塊,所以?xún)烧呓?jīng)常聯(lián)系在一起。Python 爬蟲(chóng)開(kāi)發(fā)工程師,從網(wǎng)站某一個(gè)頁(yè)面(通常是首頁(yè))開(kāi)始,讀取網(wǎng)頁(yè)的內(nèi)容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這些鏈接地址尋找下一個(gè)網(wǎng)頁(yè),這樣一直循環(huán)下去,直到把這個(gè)網(wǎng)站所有的網(wǎng)頁(yè)都抓取完為止。如果把整個(gè)互聯(lián)網(wǎng)當(dāng)成一個(gè)網(wǎng)站,那么網(wǎng)絡(luò)蜘蛛就可以用這個(gè)原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取下來(lái)。

作為一門(mén)編程語(yǔ)言而言,Python 是純粹的自由軟件,以簡(jiǎn)潔清晰的語(yǔ)法和強(qiáng)制使用空白符進(jìn)行語(yǔ)句縮進(jìn)的特點(diǎn)從而深受程序員的喜愛(ài)。舉一個(gè)例子:完成一個(gè)任務(wù)的話(huà),c 語(yǔ)言一共要寫(xiě)1000行代碼,java 要寫(xiě)100行,而 python 則只需要寫(xiě)20行的代碼。使用 python來(lái)完成編程任務(wù)的話(huà)編寫(xiě)的代碼量更少,代碼簡(jiǎn)潔簡(jiǎn)短可讀性更強(qiáng),一個(gè)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)的時(shí)候讀別人的代碼會(huì)更快,開(kāi)發(fā)效率會(huì)更高,使工作變得更加高效。

這是一門(mén)非常適合開(kāi)發(fā)網(wǎng)絡(luò)爬蟲(chóng)的編程語(yǔ)言,而且相比于其他靜態(tài)編程語(yǔ)言,Python 抓取網(wǎng)頁(yè)文檔的接口更簡(jiǎn)潔;相比于其他動(dòng)態(tài)腳本語(yǔ)言,Python 的 urllib2 包提供了較為完整的訪(fǎng)問(wèn)網(wǎng)頁(yè)文檔的 API。此外,python 中有優(yōu)秀的第三方包可以高效實(shí)現(xiàn)網(wǎng)頁(yè)抓取,并可用極短的代碼完成網(wǎng)頁(yè)的標(biāo)簽過(guò)濾功能。

python爬蟲(chóng)的構(gòu)架組成如下圖:

1、URL 管理器:管理待爬取的 url 集合和已爬取的 url 集合,傳送待爬取的 url 給網(wǎng)頁(yè)下載器;

2、網(wǎng)頁(yè)下載器:爬取url對(duì)應(yīng)的網(wǎng)頁(yè),存儲(chǔ)成字符串,傳送給網(wǎng)頁(yè)解析器;

3、網(wǎng)頁(yè)解析器:解析出有價(jià)值的數(shù)據(jù),存儲(chǔ)下來(lái),同時(shí)補(bǔ)充 url 到 URL 管理器。

而 python 的工作流程則如下圖:

(Python 爬蟲(chóng)通過(guò) URL 管理器,判斷是否有待爬 URL,如果有待爬 URL,通過(guò)調(diào)度器進(jìn)行傳遞給下載器,下載 URL 內(nèi)容,并通過(guò)調(diào)度器傳送給解析器,解析URL內(nèi)容,并將價(jià)值數(shù)據(jù)和新 URL 列表通過(guò)調(diào)度器傳遞給應(yīng)用程序,并輸出價(jià)值信息的過(guò)程。)

Python 是一門(mén)非常適合開(kāi)發(fā)網(wǎng)絡(luò)爬蟲(chóng)的編程語(yǔ)言,提供了如 urllib、re、json、pyquery 等模塊,同時(shí)又有很多成型框架,如 Scrapy 框架、PySpider 爬蟲(chóng)系統(tǒng)等,本身又是十分的簡(jiǎn)潔方便所以是網(wǎng)絡(luò)爬蟲(chóng)首選編程語(yǔ)言!

推薦好課:Python3入門(mén)、Python3進(jìn)階


0 人點(diǎn)贊