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