老李談爬蟲 1

2022-07-29 18:27:08 字數 1617 閱讀 9183

爬蟲又可以稱之為蜘蛛或者說是機械人,很多人肯定都聽說過網路爬蟲的概念,大意就是他的目標就是不斷的傳送http請求去爬去網頁上的資料,爬蟲在搜尋引擎中運用的非常的廣泛,但是爬蟲其實並不簡單,下面我給大家詳細的講述關於爬蟲的一些細節,或許就有你不知道的細節哦。

先來說說乙個簡單的爬蟲演算法,爬蟲演算法的核心就是獲取網頁內如,解析出其中的網頁鏈結,再次傳送請求取得裡面的內容,然後迴圈。因此這裡會需要乙個種子鏈結位址,我們稱之為種子網頁。你可以把爬蟲演算法看成乙個圖演算法,各個網頁通過入鏈和出鏈的形式互相連線著,構成了類似於無向圖的結構。在爬蟲演算法的中間過程中會維護乙個未訪問url列表,一般放在主記憶體中,可以提高訪問效率,訪問完畢之後再移除,獲取到新的鏈結之後再次放入。

爬蟲佇列

爬蟲佇列指的是爬蟲訪問到新的鏈結時,所存入佇列的方式,因為這關係到之後將會優化訪問哪些未訪問的url,如果採用fifo的方式的話,對應的爬蟲就是寬度優先爬蟲,就是廣度優先演算法類似,這個很好理解,還有另外一種就是按照優先佇列的方式,這個稱之為帶偏好的爬蟲,這類爬蟲他會做的乙個操作是會給即將訪問的url乙個優先順序值,該優先順序值會根據頁面價值估計計算而得。

了解了爬蟲的核心原理之後,就可以往細節裡面再去研究,比如獲取到了網頁內容之後,我們如何去解析或者說是去識別出裡面的鏈結呢,也許你會馬上聯絡到正規表示式去匹配嘛,方便又快捷,但是你忘了乙個前提,你所面對的是海量的資料,什麼叫做海量,千萬級,億級別的資料。所以我們得重新選擇乙個好的方式,大體上來說,網頁的解析過程可以簡單的從超連結中獲取url也可以複雜到分析html**,以後者為例,你可以用獲取到的html源**構建乙個dom樹,然後乙個深度優先或廣度優先的方式去遍歷每個標籤節點,當然在這部分還可以有很多的演算法優化。

爬蟲又可以稱之為蜘蛛或者說是機械人,很多人肯定都聽說過網路爬蟲的概念,大意就是他的目標就是不斷的傳送http請求去爬去網頁上的資料,爬蟲在搜尋引擎中運用的非常的廣泛,但是爬蟲其實並不簡單,下面我給大家詳細的講述關於爬蟲的一些細節,或許就有你不知道的細節哦。

先來說說乙個簡單的爬蟲演算法,爬蟲演算法的核心就是獲取網頁內如,解析出其中的網頁鏈結,再次傳送請求取得裡面的內容,然後迴圈。因此這裡會需要乙個種子鏈結位址,我們稱之為種子網頁。你可以把爬蟲演算法看成乙個圖演算法,各個網頁通過入鏈和出鏈的形式互相連線著,構成了類似於無向圖的結構。在爬蟲演算法的中間過程中會維護乙個未訪問url列表,一般放在主記憶體中,可以提高訪問效率,訪問完畢之後再移除,獲取到新的鏈結之後再次放入。

爬蟲佇列

爬蟲佇列指的是爬蟲訪問到新的鏈結時,所存入佇列的方式,因為這關係到之後將會優化訪問哪些未訪問的url,如果採用fifo的方式的話,對應的爬蟲就是寬度優先爬蟲,就是廣度優先演算法類似,這個很好理解,還有另外一種就是按照優先佇列的方式,這個稱之為帶偏好的爬蟲,這類爬蟲他會做的乙個操作是會給即將訪問的url乙個優先順序值,該優先順序值會根據頁面價值估計計算而得。

了解了爬蟲的核心原理之後,就可以往細節裡面再去研究,比如獲取到了網頁內容之後,我們如何去解析或者說是去識別出裡面的鏈結呢,也許你會馬上聯絡到正規表示式去匹配嘛,方便又快捷,但是你忘了乙個前提,你所面對的是海量的資料,什麼叫做海量,千萬級,億級別的資料。所以我們得重新選擇乙個好的方式,大體上來說,網頁的解析過程可以簡單的從超連結中獲取url也可以複雜到分析html**,以後者為例,你可以用獲取到的html源**構建乙個dom樹,然後乙個深度優先或廣度優先的方式去遍歷每個標籤節點,當然在這部分還可以有很多的演算法優化。

poptest老李談動態口令原理

動態口令,又叫動態令牌 動態密碼。它的主要原理是 使用者登入前,依據使用者私人身份資訊,並引入隨機數產生隨機變化的口令,使每次登入過程中傳送的口令資訊都不同,以提高登入過程中使用者身份認證的安全性。銀行通常提供給使用者兩種動態口令 一種是固定數量的動態口令,最常見的就是刮刮卡。使用者每次根據銀行提示...

老李分享 Web Services 架構 1

有兩種方法可以檢視 web service 的架構 web service 架構中主要有三種角色 它是 web service 的提供者。服務提供者實現了服務並且使它可以通過網際網路進行訪問。它是 web service 的消費者。請求者通過開啟乙個網路連線並傳送乙個 xml 請求來使用乙個已有的 ...

老李分享雲計算基本概念 1

1 nosql資料庫 列族儲存 hbase,hypertable 文件儲存 mongdb,couchdb 鍵值儲存 redis,memcahed,berkeley db 最終一致的鍵 1 nosql資料庫 列族儲存 hbase,hypertable 文件儲存 mongdb,couchdb 鍵值儲存 ...