web採集是從web中採集大量網頁的過程,並且要避免採集重複或無用的頁面,採集完的網頁需要構建索引,以擴大搜尋引擎的索引規模;
web採集通常是由多台機器並行採集;
(1)web採集器需要識別採集器陷阱(spider traps),比如當採集器訪問到某個web伺服器的網頁時,此網頁會生成無限多個網頁被採集器採集,從而使得採集器不能跳出;
(2)web伺服器都有乙個政策,比如伺服器每5秒只能訪問一次,因此採集器必須遵循這些規則;
1.分布式:採集器有多個節點;
2.即時更新:將原始抓取的網頁進行更新;
3.功能可擴充套件性:可以增加協議;
web採集過程類似於遍歷web圖的過程;
1.設定乙個或多個url作為種子集合,並放入url等待池;
2.抽取url:在url池中取出乙個url,並在url池中刪除這個url(如果是連續式採集,則可以不用刪,因為以後還會採集此url進行頁面更新);
3.採集網頁;
4.分析網頁,並抽取出文字和鏈結,文字放入索引器,鏈結首先檢查是否已被採集、是否內容相同、是否滿足robots.txt檔案,如果未被採集、內容不同、滿足robot,則放入url等待池(url frontier)(通過shingle方法判斷內容重複),等待被採集;
對於連續式採集,抽取url後不一定要刪除url池中的,因為以後還會被採集;
content seen處理內容重複;
url filter處理robots檔案的問題;
url duplication處理url已採集問題;
web採集器的模組
(1)url池;
(2)dns解析器;
(3)抓取模組;
(4)分析模組;
(5)url去重模組;
web伺服器通過拒絕蜘蛛協議(robot exclusion protocol)對採集器進行限制,通過在web目錄下放置robots.txt;
在訪問web伺服器的頁面之前,必須先抓取robots.txt檔案,放入快取(加快速度);
注意:在判定url是否放入url池的時候就需要去抓取robots.txt判定,在真正抓取頁面之前必須訪問robots.txt檔案進行判定,因為放入url池後,robots檔案可能會改變;
在url池取出url的時候需要考慮不能一直返回相同web伺服器的url,禮貌問題;
以上是前端佇列,當url放入url池時,會分配乙個優先順序,並放入特定的佇列;
上圖是後端佇列,每個佇列對應乙個主機;
需要保證在採集時後端佇列的每個佇列不能為空;
heap的每個元素對應乙個後端佇列,表示乙個web伺服器所能再次被訪問的最早時間;
分布式web採集
有多個採集器,分布在世界各地;每個採集器
採集器和原來差不多,只是多了主機劃分器,並且url查重模組需要接收其他機器發來的url;
host splitter是主機劃分器,宗旨是採集器需要採集的網頁是地理位置相鄰的web伺服器的網頁,因此需要有這個主機劃分器進行分配url;
dns(domain name service)伺服器:用來將url解析成ip的機器;
dns伺服器通常會有多個,因此是分布式的;
dns解析的時間很長,所以可以通過dns快取加快速度;
《資訊檢索導論》第二十章總結
web採集是從web中採集大量網頁的過程,並且要避免採集重複或無用的頁面,採集完的網頁需要構建索引,以擴大搜尋引擎的索引規模 web採集通常是由多台機器並行採集 1 web採集器需要識別採集器陷阱 spider traps 比如當採集器訪問到某個web伺服器的網頁時,此網頁會生成無限多個網頁被採集器...
第二十章 Skeletal Animation
skeletal animation 骨骼動畫 是指互相連線的變換 骨頭 組成的分層集合,以及對應的模型mesh 即骨骼的 當這些變換隨著時間變化而變化時,模型的mesh就會形成動畫效果。本章,我們將會 skeketal animation,並開發一些系統用於支援模型動畫。把乙個skeleton對映...
第二十章 限制
城城內西部某個庭院井底,滕青山正在這。趙丹塵,你想抓我,再回去練上五十年吧。喊了一嗓子後,滕青山又立即鑽進泥土中,繼續前進。泥土中,滕青山現在也不急,不過,此刻滕青山體表的 子彈型光罩 已經沒有螺旋了。通過先天真元,改變身體形狀!看來不是我想象的那樣。滕青山很清楚,先天真元光罩如果單單維持,消耗先天...