Python爬蟲程序架構(gòu)和運(yùn)行流程原理解析
1 前言
Python開發(fā)網(wǎng)絡(luò)爬蟲獲取網(wǎng)頁數(shù)據(jù)的基本流程為:
發(fā)起請求
通過URL向服務(wù)器發(fā)起request請求,請求可以包含額外的header信息。
獲取響應(yīng)內(nèi)容
服務(wù)器正常響應(yīng),將會(huì)收到一個(gè)response,即為所請求的網(wǎng)頁內(nèi)容,或許包含HTML,Json字符串或者二進(jìn)制的數(shù)據(jù)(視頻、圖片)等。
解析內(nèi)容
如果是HTML代碼,則可以使用網(wǎng)頁解析器進(jìn)行解析,如果是Json數(shù)據(jù),則可以轉(zhuǎn)換成Json對象進(jìn)行解析,如果是二進(jìn)制的數(shù)據(jù),則可以保存到文件做進(jìn)一步處理。
保存數(shù)據(jù)
可以保存到本地文件,也可以保存到數(shù)據(jù)庫(MySQL,Redis,MongoDB等)。

2 爬蟲程序架構(gòu)及運(yùn)行流程

網(wǎng)絡(luò)爬蟲程序框架主要包括以下五大模塊:
爬蟲調(diào)度器 URL管理器 HTML下載器 HTML解析器 數(shù)據(jù)存儲(chǔ)器五大模塊功能如下所示:
爬蟲調(diào)度器:主要負(fù)責(zé)統(tǒng)籌其它四個(gè)模塊的協(xié)調(diào)工作。 URL管理器:負(fù)責(zé)管理URL鏈接,維護(hù)已經(jīng)爬取的URL集合和未爬取的URL集合,提供獲取新URL鏈接的接口。 HTML下載器:用于從URL管理器中獲取未爬取的URL鏈接并下載HTML網(wǎng)頁。 HTML解析器:用于從HTML下載器中獲取已經(jīng)下載的HTML網(wǎng)頁,并從中解析出新的URL鏈接交給URL管理器,解析出有效數(shù)據(jù)交給數(shù)據(jù)存儲(chǔ)器。 數(shù)據(jù)存儲(chǔ)器:用于將HTML解析器解析出來的數(shù)據(jù)通過文件或者數(shù)據(jù)庫的形式存儲(chǔ)起來。網(wǎng)絡(luò)爬蟲程序框架的動(dòng)態(tài)運(yùn)行流程如下所示:

3 小結(jié)
本文簡要介紹了Python開發(fā)網(wǎng)絡(luò)爬蟲的程序框架,將網(wǎng)絡(luò)爬蟲運(yùn)行流程按照具體功能劃分為不同模塊,以便各司其職、協(xié)同運(yùn)作。搭建好網(wǎng)絡(luò)爬蟲框架后,能夠有效地提高我們開發(fā)網(wǎng)絡(luò)爬蟲項(xiàng)目的效率,避免一些重復(fù)造車輪的工作。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. .net中string類型可以作為lock的鎖對象嗎2. 詳細(xì)總結(jié)Java for循環(huán)的那些坑3. Java進(jìn)行Appium自動(dòng)化測試的實(shí)現(xiàn)4. python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)鳶尾花分類5. 新手學(xué)python應(yīng)該下哪個(gè)版本6. php中PHPUnit框架實(shí)例用法7. uni-app結(jié)合PHP實(shí)現(xiàn)單用戶登陸demo及解析8. ajax實(shí)現(xiàn)頁面的局部加載9. 如何利用Python matplotlib繪制雷達(dá)圖10. PHP安全-過濾輸入

網(wǎng)公網(wǎng)安備