App下載

python為什么叫爬蟲?

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

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

在進(jìn)入文章之前,我們首先需要知道什么是爬蟲。爬蟲,即網(wǎng)絡(luò)爬蟲,大家可以理解為在網(wǎng)絡(luò)上爬行的一只蜘蛛,互聯(lián)網(wǎng)就比作一張大網(wǎ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ù)。不容易理解的話其實(shí)可以通過(guò)下面的圖片進(jìn)行理解:

因?yàn)?python 的腳本特性,python 易于配置,對(duì)字符的處理也非常靈活,加上 python 有豐富的網(wǎng)絡(luò)抓取模塊,所以兩者經(jīng)常聯(lián)系在一起。Python 爬蟲開發(fā)工程師,從網(wǎng)站某一個(gè)頁(yè)面(通常是首頁(yè))開始,讀取網(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)。

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

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

python爬蟲的構(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 爬蟲通過(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 是一門非常適合開發(fā)網(wǎng)絡(luò)爬蟲的編程語(yǔ)言,提供了如 urllib、re、json、pyquery 等模塊,同時(shí)又有很多成型框架,如 Scrapy 框架、PySpider 爬蟲系統(tǒng)等,本身又是十分的簡(jiǎn)潔方便所以是網(wǎng)絡(luò)爬蟲首選編程語(yǔ)言!

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


0 人點(diǎn)贊