簡單來說,一個爬蟲的工作流程可以分為以下三個步驟(以及每個步驟應(yīng)該處理的問題)
第一步爆安,發(fā)起網(wǎng)絡(luò)請求
怎樣處理需要登錄的操作叛复?
反爬蟲的機(jī)制有哪些,如何避免反爬蟲扔仓?
如何用隊(duì)列批量處理網(wǎng)絡(luò)請求褐奥?
網(wǎng)絡(luò)請求中經(jīng)常用到的庫有哪些?
為什么要用IP代理当辐,如何構(gòu)建自己的IP代理池抖僵?
你的UA庫、COOKIE池是怎樣的缘揪?
如何異步處理網(wǎng)絡(luò)請求耍群?
如何科學(xué)的優(yōu)化網(wǎng)絡(luò)請求?
以上種種找筝,為了不被反爬蟲機(jī)制干掉蹈垢,所以我們要盡量模仿真實(shí)用戶的網(wǎng)絡(luò)請求。
第二步袖裕,解析獲取的數(shù)據(jù)曹抬,提取你想要的內(nèi)容
如何提取目標(biāo)內(nèi)容,有哪些常用的庫急鳄?
如何獲取需要js渲染的網(wǎng)頁內(nèi)容谤民?
如何處理分頁數(shù)據(jù)?
第三步疾宏,持久化张足,將數(shù)據(jù)存儲到文件系統(tǒng)或數(shù)據(jù)庫中
如何存儲到文件?
如何存儲到數(shù)據(jù)庫坎藐?
通過以上對爬蟲工作過程的分析为牍,那么一個簡單的爬蟲框架主要分成四個部分:
1、UrlQueue
URL管理器岩馍,對將要爬取的和已經(jīng)爬取的URL進(jìn)行管理碉咆。
2、Fetcher
網(wǎng)頁下載器蛀恩,從UrlQueue中獲取一個URL疫铜,傳給網(wǎng)頁下載器,下載器將URL指向的網(wǎng)頁內(nèi)容下載下來双谆。
3块攒、Parser
網(wǎng)頁解析器励稳,將Fether下載的內(nèi)容進(jìn)行解析,一方面獲取目標(biāo)數(shù)據(jù)囱井,另一方面獲取需要的URL,補(bǔ)充到UrlQueue中去趣避。
4庞呕、Saver
持久化,將數(shù)據(jù)存儲到文件系統(tǒng)程帕,或者數(shù)據(jù)庫中住练。