二、簡單爬蟲架構-動態執行流程
三、url管理器:管理待抓取url集合和已抓取的url集合
目的在於:防止重複和迴圈抓取。url之間往往迴圈指向的,如果不對url進行管理,爬蟲就會不斷的抓取這些url,最糟糕的情況兩個url互相指向,則我們將不停的抓取這兩個url管理器,形成死迴圈。
功能:url管理器要求至少具備5個功能,即新增新的url到待爬取集合中,判斷待新增的url是否已經存在容器中,獲取待爬取url、判斷是否有帶爬取url以及將url從待爬取移動到已爬取。
url的實現方式
三種實現方式:第一種,儲存在記憶體中(個人或小型公司);第二種,儲存在關係資料中(永久儲存),第三種,快取資料庫中(大型網際網路公司)
1. python記憶體,待爬取url集合:set() 已爬取url集合:set()
2.mysql urls(url, is_crawled),crawled用來標記待爬取還是已爬取
3.redis 待爬取url集合:set 已爬取url集合:set
python 輕量級爬蟲開發2
urllib2 python官方基礎模組 request 第三方包更強大 url urllib2.urlopen url coding utf 8 import urllib2 直接請求 response urllib2.urlopen 獲取狀態碼 print response.getcode 讀取...
python 輕量級爬蟲開發3
採用beautiful外掛程式 建立beautifulsoup物件 from bs4 import beautifulsoup 根據html網頁字串建立beautifulsoup物件 soup beautifulsoup html doc,html文件字串 html.parser html解析器 f...
輕量級重量級
輕量級重量級某種程度上是以啟動程式需要的資源來決定。比如,ejb啟動的時候,需要消耗大量的資源,記憶體,cpu等,所以是重量級。而spring則不,所以是輕量級框架。量級主要是看對容器的依賴性所決定的,依賴性越小,越輕量.ejb往往內部做了很多服務,網上的說法是買一得三 而且你不想要就不行!比方說我...