Python開(kāi)發(fā)簡(jiǎn)單爬蟲(chóng)(一)
一 、簡(jiǎn)單爬蟲(chóng)架構(gòu):
爬蟲(chóng)調(diào)度端:?jiǎn)?dòng)爬蟲(chóng),停止爬蟲(chóng),監(jiān)視爬蟲(chóng)運(yùn)行情況
URL管理器:對(duì)將要爬取的和已經(jīng)爬取過(guò)的URL進(jìn)行管理;可取出帶爬取的URL,將其傳送給“網(wǎng)頁(yè)下載器”
網(wǎng)頁(yè)下載器:將URL指定的網(wǎng)頁(yè)下載,存儲(chǔ)成一個(gè)字符串,在傳送給“網(wǎng)頁(yè)解析器”
網(wǎng)頁(yè)解析器:解析網(wǎng)頁(yè)可解析出 ①有價(jià)值的數(shù)據(jù) ②另一方面,每個(gè)網(wǎng)頁(yè)都包含有指向其他網(wǎng)頁(yè)的URL,解析出來(lái)后可補(bǔ)充進(jìn)“URL管理器”,不斷循環(huán)。
二、簡(jiǎn)單爬蟲(chóng)架構(gòu)的動(dòng)態(tài)運(yùn)行流程
三、爬蟲(chóng)URL管理
URL管理器:管理待抓取URL集合和已抓取URL集合 防止重復(fù)抓取。
url: 添加新url到爬取集合中, 判斷待添加url是否在容器中, 判斷是否還有待爬取的url, 獲取待爬取url, 將url從待爬移動(dòng)到已爬
四、爬蟲(chóng)URL管理器的實(shí)現(xiàn)方式
URL管理器的三種實(shí)現(xiàn)方式:內(nèi)存、關(guān)系數(shù)據(jù)庫(kù)、緩存數(shù)據(jù)庫(kù)
存放在內(nèi)存中是利用set()集合,可以去除重復(fù)元素,利用MySQL里的is_crawled參數(shù)是用來(lái)標(biāo)記已爬取還是未爬取,redis數(shù)據(jù)庫(kù)同樣利用set集合。
五、爬蟲(chóng)網(wǎng)頁(yè)下載器
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26