專利名稱:網(wǎng)頁抓取方法和網(wǎng)頁抓取服務器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理技術(shù)領(lǐng)域,尤其涉及一種無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)中 的網(wǎng)頁抓取方法和網(wǎng)頁抓取服務器。
背景技術(shù):
隨著網(wǎng)絡技術(shù)的發(fā)展,無線互聯(lián)網(wǎng)技術(shù)也在迅速地發(fā)展,人們可以通 過移動通信終端(例如移動電話、無線掌上電腦等)可以隨時隨地地與他
人聯(lián)系,同時隨著通信資費的降低以及3G技術(shù)的推廣,無線互聯(lián)網(wǎng)將有極 大的發(fā)展,并改變我們的生活方式。
目前互聯(lián)網(wǎng)上存在最多的資源是網(wǎng)頁,但是這些網(wǎng)頁是專為個人計算 機(PC)設計的超文本標記語言(HTML, HyperText Markup Language ) 格式,由于移動通信終端屏幕大小、處理能力和網(wǎng)絡帶寬的限制,這些網(wǎng) 頁無法直接在移動通信終端上進行瀏覽,針對這種情況,目前設計了一種 無線標記語言(WML, Wireless Markup Language )格式的標記語言,用于 撰寫在移動通信終端上能夠顯示的網(wǎng)頁。
無線互聯(lián)網(wǎng)的用戶也存在搜索信息的需求,因此,需要提供一個類似 于PC上的搜索引擎來幫助用戶搜索信息,由于目前HTML網(wǎng)頁數(shù)量遠遠 大于WML網(wǎng)頁數(shù)量,用戶搜索的結(jié)果大部分是存在于HTML網(wǎng)頁中,因 此目前出現(xiàn)了 一種無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng),能夠自動將HTML網(wǎng)頁轉(zhuǎn)換成 WML網(wǎng)頁,供無線互聯(lián)網(wǎng)用戶直接在移動通信終端上進行瀏覽。
無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)包括網(wǎng)頁抓取服務器、轉(zhuǎn)換服務器、和存儲服 務器。其基本處理過程是網(wǎng)頁抓取服務器先獲取移動通信終端用戶的請求, 分離出原始的HTML網(wǎng)頁地址,之后將自動抓取該HTML網(wǎng)頁,交給轉(zhuǎn)換
服務器進行解析,轉(zhuǎn)換成WML網(wǎng)頁,并將所述WML網(wǎng)頁存儲到存儲服 務器中,供移動通信終端訪問查找。
對于網(wǎng)頁抓取服務器如何抓取HTML網(wǎng)頁,現(xiàn)有的技術(shù)方案如下
利用標準模板庫(STL, Standard Template Library )中的Map數(shù)據(jù)結(jié) 構(gòu)作為緩存,該緩存用于存儲URL對象, 一個URL對象的關(guān)鍵字為網(wǎng)頁 URL的信息摘要算法(MD5, Messsage-Digest algorithm 5 )值,取值為網(wǎng) 頁的抓取時間。同時,統(tǒng)一設定網(wǎng)頁的抓取時間間隔的時間閾值,例如通 常設置為IO分鐘。
移動通信終端通過無線搜索引擎搜索到相應的網(wǎng)頁,當用戶點擊搜索 結(jié)果后,移動通信終端將對應的網(wǎng)頁請求發(fā)送到無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng), 無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)收到網(wǎng)頁請求后,分離出所請求網(wǎng)頁的URL地址, 并計算出該URL地址的MD5值,以該MD5值為關(guān)鍵字,當前時間為值, 在網(wǎng)頁抓取服務器的緩存中進行查找,如果存在相同關(guān)鍵字的URL對象, 則查詢這個URL對象的抓取時間,并與當前時間進行比較,如果兩者差大 于或等于所述設定的時間閾值,則改寫緩存中的這個URL對象,即將該 URL對象的值更新為當前時間,并重新抓取該URL對象的網(wǎng)頁,并由轉(zhuǎn)換 服務器轉(zhuǎn)換成WML網(wǎng)頁存入存儲服務器;如果兩者差小于所述設定的時 間閾值,則表示無需重新抓取該網(wǎng)頁,網(wǎng)頁抓取服務器會直接丟棄所述網(wǎng) 頁請求,由所述存儲服務器向發(fā)起請求的移動通信終端返回目前存儲的該 URL對象對應的WML網(wǎng)頁。
上述現(xiàn)有技術(shù)存在以下的缺點
現(xiàn)有技術(shù)對所有類型的網(wǎng)頁只設定 一 個網(wǎng)頁抓取間隔的時間闊值,不 能靈活適應不同類型網(wǎng)頁的更新情況,假設如果設置時間閾值為io分鐘, 那么對于某些更新頻繁的網(wǎng)頁,例如論壇、評論之類的網(wǎng)頁,IO分鐘的抓 取時間間隔過長;反之,對于那些更新頻率非常低的網(wǎng)頁類型,例如新聞 網(wǎng)頁,很可能發(fā)布之后就不會更新了,但是目前系統(tǒng)無法適應這種情況, 還是要每隔IO分鐘去重新抓取一次網(wǎng)頁。當網(wǎng)頁的抓取間隔超過設定的時
間閾值后,即該網(wǎng)頁從緩存中過期后,并不能代表該網(wǎng)頁內(nèi)容已經(jīng)做了更 新,需要重新抓取,然而事實上,互聯(lián)網(wǎng)上大部分網(wǎng)頁的更新周期都比較 長。
因此,現(xiàn)有技術(shù)的無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)無法適應網(wǎng)頁更新周期長的這 種情況,造成重復抓取了很多并沒有進行內(nèi)容更新的網(wǎng)頁,加重了網(wǎng)頁抓取 服務器的負擔,占用了過多的網(wǎng)絡帶寬資源,并且抓取網(wǎng)頁的效率較低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題在于提供一種網(wǎng)頁抓取方法,以 減輕網(wǎng)頁抓取服務器的負擔,減少對網(wǎng)絡帶寬資源的占用,提高網(wǎng)頁抓取的 效率。
本發(fā)明所要解決的另 一 技術(shù)問題在于提供 一種網(wǎng)頁抓取服務器,以減輕 自身系統(tǒng)的負擔,減少對網(wǎng)絡帶寬資源的占用,提高網(wǎng)頁抓取的效率。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明的主要技術(shù)方案為 一種網(wǎng)頁抓取方法,包括
A、 接收網(wǎng)頁請求;
B、 判斷所請求網(wǎng)頁是否抓取過,如果是,則執(zhí)行步驟C;否則,抓取 該網(wǎng)頁,結(jié)束本流程;
C、 判斷所請求網(wǎng)頁的抓取間隔是否大于預設的時間閾值,如果是,則 執(zhí)行步驟D;否則,不抓取該網(wǎng)頁,結(jié)東本流程;
D、 查詢所述網(wǎng)頁是否有更新,如果有更新,則抓取該網(wǎng)頁;否則,不 抓取該網(wǎng)頁。
優(yōu)選的,該方法預先設置緩存區(qū)和該緩存區(qū)對應的時間閾值;
并且,在第一次抓取網(wǎng)頁時,針對該網(wǎng)頁創(chuàng)建一個對象存入緩存區(qū),該
對象包括該網(wǎng)頁的標識和請求時間,并在后續(xù)步驟D中進一步以當前時間
更新原有的時間;
在步驟B中,根據(jù)所請求的網(wǎng)頁標識是否在緩存中存在來判斷該網(wǎng)頁是
否抓取過;步驟C中,所述的抓取間隔為當前時間與緩存區(qū)中所述網(wǎng)頁對象
所包括時間的差值,所述時間閩值為該緩存區(qū)對應的時間閾值。
優(yōu)選的,按照網(wǎng)頁抓取頻率的差異設置不同級別的緩存區(qū),其中不同級
緩存區(qū)對應不同的抓取間隔的時間閾值;并根據(jù)網(wǎng)頁的抓取頻率將網(wǎng)頁的對 象在不同級的緩存區(qū)中遷移。
優(yōu)選的,所述每一級的緩存區(qū)對應設置一個抓取頻率等級值,在所述每 個網(wǎng)頁的對象中進一步設置抓取次數(shù),該抓取次數(shù)的初始值為0;
在步驟D中,進一步包括如果網(wǎng)頁有更新,則將該網(wǎng)頁對象中的抓 取次數(shù)加1,如果網(wǎng)頁沒有更新,則該網(wǎng)頁對象中的抓取次數(shù)減1;并比較 該網(wǎng)頁對象的抓取次數(shù)和該網(wǎng)頁對象所屬緩存區(qū)的抓取頻率等級值,如果抓 取次數(shù)大于所述抓取頻率等級值,則將該網(wǎng)頁對象移動到時間閾值更短的上 一級緩存區(qū),如果抓取次數(shù)小于所述抓取頻率等級值,則將該網(wǎng)頁對象移動 到時間閾值更長的下 一 級緩存區(qū)。
優(yōu)選的,步驟D所述査詢所述網(wǎng)頁是否有更新具體為根據(jù)超文本傳 輸協(xié)議的返回碼查詢判斷所述網(wǎng)頁是否有更新。
優(yōu)選的,所述網(wǎng)頁為超文本標記語言網(wǎng)頁。
一種網(wǎng)頁抓取服務器,包括
網(wǎng)頁請求接收模塊,用于接收網(wǎng)頁請求;
判斷模塊,用于判斷所請求網(wǎng)頁是否抓取過和抓取間隔,在未抓取過時,
觸發(fā)抓取模塊,在抓取間隔大于預設的時間間隔時觸發(fā)査詢模塊;
査詢模塊,用于查詢所述網(wǎng)頁是否有更新,在有更新時觸發(fā)抓取模塊; 抓取模塊,用于抓取網(wǎng)頁。
優(yōu)選的,進一步包括緩存區(qū),用于存儲抓取網(wǎng)頁的對象,且該緩存區(qū)具 有對應的時間閾值;所述判斷模塊根據(jù)所述緩存區(qū)中的網(wǎng)頁對象判斷網(wǎng)頁是 否抓取過以及抓取間隔,且所述用于比較的時間閾值為該緩存區(qū)對應的時間閾值。
優(yōu)選的,所述緩存區(qū)有至少兩級,每級緩存區(qū)對應不同的網(wǎng)頁抓取頻率
和抓取間隔的時間閾值;
且所述網(wǎng)頁抓取服務器進一步包括對象遷移模塊,用于根據(jù)網(wǎng)頁的抓取 頻率將網(wǎng)頁的對象在不同級的緩存區(qū)中遷移。
優(yōu)選的,所述網(wǎng)頁為超文本標記語言網(wǎng)頁。
由于本發(fā)明使得網(wǎng)頁抓取服務器在一定時間閾值內(nèi)不需要重新抓取用 戶的請求網(wǎng)頁,而是直接返回存儲服務器的存儲結(jié)果,并且在網(wǎng)頁的抓取間 隔大于預設的時間閾值后,進一步判斷網(wǎng)頁是否有更新,如果有更新則抓取 網(wǎng)頁,否則不抓取網(wǎng)頁。因此可以避免重復抓取很多并沒有進行內(nèi)容更新的 網(wǎng)頁,減輕網(wǎng)頁抓取服務器的負擔,減少對網(wǎng)絡帶寬資源的占用,提高抓取 網(wǎng)頁的效率。
另外,本發(fā)明還進一步利用分級緩存的機制來提高網(wǎng)頁抓取效率,按照 網(wǎng)頁抓取頻率的差異設置不同級別的緩存區(qū),分別對應于不同更新頻率的網(wǎng) 頁,并根據(jù)網(wǎng)頁的抓取頻率將網(wǎng)頁的對象在不同級的緩存區(qū)中遷移。使該 URL對象的更新頻率趨近于真實的網(wǎng)頁內(nèi)容更新頻率,提高緩存區(qū)的準確 性。
圖i為本發(fā)明所述網(wǎng)頁抓取方法的一種實施例的流程圖2為本發(fā)明所述網(wǎng)頁抓取服務器的一種結(jié)構(gòu)及與外界關(guān)系的示意圖。
具體實施例方式
下面通過具體實施例和附圖對本發(fā)明做進一步詳細說明。 本發(fā)明所述的網(wǎng)頁抓取方法適用于無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)中的網(wǎng)頁 抓取服務器,該網(wǎng)頁抓取服務器利用一種緩存機制來保證在一定時間范圍
內(nèi)不重復抓取同一張HTML網(wǎng)頁,同時,當預定的時間閾值到達后,根據(jù) HTTP頭部信息來檢測該HTML網(wǎng)頁內(nèi)容是否已經(jīng)更新來判斷是否需要重 新抓取HTML網(wǎng)頁。在需要抓取HTML網(wǎng)頁時,該網(wǎng)頁抓取服務器從該
HTML網(wǎng)頁所在的服務器抓取該HTML網(wǎng)頁,并將抓取的HTML網(wǎng)頁發(fā)送 給無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)中的轉(zhuǎn)換服務器,由轉(zhuǎn)換服務器轉(zhuǎn)換成WML網(wǎng) 頁,并存入到無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)中的存儲服務器中,供移動通信終端 用戶訪問獲取。
圖1為本發(fā)明所述網(wǎng)頁抓取方法的一種實施例的流程圖。該實施例中, 在初始時,在網(wǎng)頁抓取服務器中初始化三個緩存區(qū),用于存儲URL對象, 所述一個URL對象對應 一個HTML網(wǎng)頁,該URL對象以網(wǎng)頁URL地址的 MD5值為關(guān)鍵字,并包括HTML網(wǎng)頁的請求時間、以及HTML網(wǎng)頁的實際 抓取次數(shù)update, update是一個整形數(shù)值。每個緩存區(qū)內(nèi)部實現(xiàn)數(shù)據(jù)結(jié)構(gòu)為 STL的Map。所述三個緩存區(qū)根據(jù)網(wǎng)頁抓取間隔分為三個級別,設置三個緩 存區(qū)對應的網(wǎng)頁抓取間隔的時間閾值,例如本實施例中第一緩存區(qū)設置為5 分鐘,第二緩存區(qū)設置為IO分鐘,第三緩存區(qū)設置為20分鐘,同時對每個 緩存區(qū)還分別設置一個對應的updateLevel值,表示該級別緩存區(qū)內(nèi)URL對 象對應HTML網(wǎng)頁的抓取頻率,也相當于HTML網(wǎng)頁的更新頻繁度等級。 將每個緩存區(qū)的大小、時間闌值參數(shù)以及updateLevd值保存于配置文件中, 網(wǎng)頁抓取服務器在啟動時候讀取該配置文件,同時可通過網(wǎng)頁抓取服務器管 理線程在網(wǎng)頁抓取服務器運行過程中進行動態(tài)地更新。
參見圖1,在該實施例中,網(wǎng)頁抓取服務器具體執(zhí)行以下步驟
步驟101、接收用戶的網(wǎng)頁請求即URL請求,分離出所請求網(wǎng)頁的URL 地址,并計算出該URL地址的MD5值。
所述網(wǎng)頁請求的來源是移動通信終端,移動通信終端通過無線搜索引擎 搜索到相應的網(wǎng)頁,當用戶點擊搜索結(jié)果后,移動通信終端將對應的網(wǎng)頁請 求發(fā)送到無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng),無線搜索網(wǎng)頁轉(zhuǎn)換系統(tǒng)的網(wǎng)頁抓取服務器 和存儲服務器可以接收該網(wǎng)頁請求,網(wǎng)頁抓取服務器可以根據(jù)該網(wǎng)頁請求進 行的后續(xù)的抓取搡作,所述存儲服務器可以根據(jù)網(wǎng)頁請求查詢對應的WML 網(wǎng)頁。
步驟102、以所述URL的MD5值為關(guān)鍵字,依次在所述網(wǎng)頁抓取服務
器的三個緩存區(qū)中査找URL對象,如果都査找不到,則執(zhí)行步驟103;否 則,執(zhí)行步驟104。
步驟103、生成一個URL對象,包括該URL的請求時間、以及update, update的初始值為0,并以所述URL的MD5值為關(guān)鍵字。將所述URL對 象插入到一個指定的緩存區(qū)中,例如一般為第一個緩存區(qū)中,同時需要啟動 網(wǎng)絡連接重新抓取所述HTML網(wǎng)頁的實際內(nèi)容,即從所述HTML網(wǎng)頁所在 的服務器抓取該URL對應的HTML網(wǎng)頁,將抓取到的HTML網(wǎng)頁發(fā)給轉(zhuǎn)換 服務器后,網(wǎng)頁抓取服務器結(jié)東本次URL請求的執(zhí)行流程。之后,由轉(zhuǎn)換 服務器將HTML網(wǎng)頁轉(zhuǎn)換為WML網(wǎng)頁,將WML網(wǎng)頁存入存儲服務器中以 供移動通信終端用戶訪問獲取WML網(wǎng)頁。
當網(wǎng)頁抓取服務器第一次請求某一個URL時,如果成功抓取網(wǎng)頁,該 網(wǎng)頁所在服務器的返回狀態(tài)會是200,內(nèi)容是網(wǎng)頁數(shù)據(jù),同時有一個 Last-Modified的屬性標識此網(wǎng)頁在網(wǎng)站上最后被修改的時間,格式類似
Last-Modified: Wed, 17 Oct 2007 12:45:30 GMT。
步驟104、如果在某個緩存區(qū)中查找到相應的URL對象,則取出該URL 對象的值,以當前時間值減去該URL對象中的時間值,如果差值在該緩存 區(qū)對應的時間閾值內(nèi),則執(zhí)行步驟105;否則執(zhí)行步驟106。
步驟105、不需要重新抓取HTML網(wǎng)頁,網(wǎng)頁抓取服務器直接忽略此次 URL請求,結(jié)束本次URL請求流程。
步驟106、以所述緩存區(qū)中URL對象的請求時間為起始值,利用HTTP 協(xié)議中304返回碼來判斷所述URL的HTML網(wǎng)頁內(nèi)容是否有實際的更新, 如果所述HTML網(wǎng)頁有更新,則執(zhí)行步驟108,否則,執(zhí)行步驟107。
所述步驟106判斷HTML網(wǎng)頁內(nèi)容是否有實際更的具體過程包括
步驟61、網(wǎng)頁抓取服務器以所述緩存區(qū)中URL對象的請求時間為查詢 是否更新的起始時間(If-Modified-Since),向HTML網(wǎng)頁所在服務器發(fā)送 査詢HTML網(wǎng)頁是否更新的請求,其中包括所述網(wǎng)頁請求中的URL地址; 當然所述起始時間也可以是上一次返回狀態(tài)200中包括的網(wǎng)頁最后被修改
的時間。例如
If-Modified-Since: Wed, 17 Oct 2007 12:45:30 GMT。
步驟62、該URL地址所在服務器查詢所述URL地址對應的HTML網(wǎng) 頁是否有更新,并在返回給網(wǎng)頁抓取服務器的HTTP 304返回碼中攜帶是否 更新的結(jié)果;
步驟63、網(wǎng)頁抓取服務器根據(jù)HTTP 304返回碼查詢判斷所述HTML 網(wǎng)頁內(nèi)容是否有實際的更新,如果304返回碼為空,則表示對應的HTML 網(wǎng)頁沒有被修改過,否則表示被修改過。
接著,本發(fā)明按照一定的緩存策略決定某一個網(wǎng)頁是否繼續(xù)停留在當前 級緩存區(qū)中或者調(diào)整其緩存級別。具體如下步驟107至步驟109。
步驟107、直接更新所述緩存區(qū)中所述的URL對象的請求時間為當前 時間,并將該URL對象中的update值減1,同時不需要重新抓取該HTML 網(wǎng)頁的實際內(nèi)容,執(zhí)行步驟109。
步驟108、先更新所述緩存區(qū)中所述URL對象的請求時間為當前時間, 并將該URL對象中的update值加1,同時需要啟動網(wǎng)絡連接重新抓取該網(wǎng) 頁的實際內(nèi)容。
步驟109、根據(jù)URL對象的update值與該URL對象所屬緩存的 updateLevel值來調(diào)整該URL對象的緩存級別。具體為
當某級緩存區(qū)中,例如此處在第二級緩存區(qū)中,某個URL對象的update 值 > 該級緩存區(qū)的updateLevel值時,將其移到時間閾值更短(即更新更頻 繁)的上一級緩存區(qū)中,例如此處為移動到第一級緩存區(qū),移動后,該URL 對象的update值清零。但是,對于所述URL對象屬于第一級緩存區(qū)的情況
則不做移動處理。
當某級緩存區(qū)中,例如此處還是第二級緩存區(qū)中,某個URL對象的 update值 < 負的該級緩存區(qū)updateLevel值的時,將其移到時間閾值更長(即 更新較不頻繁)的下一級緩存區(qū)中,例如此處為移動到第三級緩存區(qū)中,移 動后,該URL對象的update值清零。但是,對于所述URL對象屬于最后一
級緩存區(qū)的情況不做移動處理。
通過步驟109,可以利用update值將URL對象動態(tài)地在不同級的緩存 區(qū)中遷移,使該URL對象的更新頻率趨近于真實的網(wǎng)頁內(nèi)容更新頻率,提
高緩存區(qū)的準確性。
圖2為本發(fā)明所述網(wǎng)頁抓取服務器的一種結(jié)構(gòu)及與外界關(guān)系的示意圖。 參見圖2,所述網(wǎng)頁抓取服務器200包括
網(wǎng)頁請求接收模塊201,用于接收網(wǎng)頁請求。
判斷模塊202,用于判斷所請求網(wǎng)頁是否抓取過以及抓取間隔,如果未 抓取過則觸發(fā)抓取模塊204,如果抓取過,且抓取間隔大于預設的時間間隔 時觸發(fā)查詢模塊203,如果抓取過,且抓取間隔小于或等于預設的時間間隔 則忽略本次網(wǎng)頁請求。
查詢模塊203,用于查詢所述網(wǎng)頁是否有更新,在有更新時觸發(fā)抓取模 塊204,在沒有更新時放棄本次網(wǎng)頁請求。所述具體的查詢方法參見步驟 106,即以所述緩存區(qū)中URL對象的請求時間為起始值,利用HTTP協(xié)議中 304返回碼來判斷所述URL的HTML網(wǎng)頁內(nèi)容是否有實際的更新。
抓取模塊204,用于從所述HTML網(wǎng)頁所在的服務器500抓取該URL 對應的HTML網(wǎng)頁,將抓取到的HTML網(wǎng)頁發(fā)給轉(zhuǎn)換服務器300。之后, 轉(zhuǎn)換服務器300將HTML網(wǎng)頁轉(zhuǎn)換為WML網(wǎng)頁,并將WML網(wǎng)頁存入存儲 服務器400中以供移動通信終端用戶訪問獲取WML網(wǎng)頁。
所述網(wǎng)頁抓取服務器中設置有緩存區(qū)205,用于存儲抓取網(wǎng)頁的對象, URL對象以網(wǎng)頁URL地址的MD5值為關(guān)鍵字,并包括HTML網(wǎng)頁的請求 時間、以及HTML網(wǎng)頁的實際抓取次數(shù)update。并設置緩存區(qū)對應的抓取 間隔的時間閾值,所述判斷模塊202根據(jù)所請求網(wǎng)頁的URL地址的MD5碼 為關(guān)鍵字查詢所述緩存區(qū)中是否存在該MD5碼對應的URL對象,如果存在 則說明對應的HTML網(wǎng)頁被抓取過,否則沒有被抓取,需要抓取該HTML 網(wǎng)頁。并且,判斷摸塊202以當前時間值減去該URL對象中的時間值作為 抓取間隔與該緩存區(qū)對應的時間閾值進行比較,如果抓取間隔大于該時間闊
值則需觸發(fā)査詢模塊203,否則直接觸發(fā)抓取模塊204進行網(wǎng)頁抓取。
如上述方法所述,所述緩存區(qū)可以有至少兩級,例如圖中為三級緩存區(qū), 每級緩存區(qū)對應不同的網(wǎng)頁抓取頻率和抓取間隔的時間閾值;且所述網(wǎng)頁抓 取服務器進一步包括對象遷移模塊206,用于根據(jù)網(wǎng)頁的抓取頻率將網(wǎng)頁的 對象在不同級的緩存區(qū)中遷移,具體的遷移方式參見上述步驟107至步驟 109。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不 局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可輕易想到 的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種網(wǎng)頁抓取方法,其特征在于,包括A、接收網(wǎng)頁請求;B、判斷所請求網(wǎng)頁是否抓取過,如果是,則執(zhí)行步驟C;否則,抓取該網(wǎng)頁,結(jié)束本流程;C、判斷所請求網(wǎng)頁的抓取間隔是否大于預設的時間閾值,如果是,則執(zhí)行步驟D;否則,不抓取該網(wǎng)頁,結(jié)束本流程;D、查詢所述網(wǎng)頁是否有更新,如果有更新,則抓取該網(wǎng)頁;否則,不抓取該網(wǎng)頁。
2、 根據(jù)權(quán)利要求1所述的網(wǎng)頁抓取方法,其特征在于,該方法預先設 置緩存區(qū)和該緩存區(qū)對應的時間閾值;并且,在第一次抓取網(wǎng)頁時,針對該網(wǎng)頁創(chuàng)建一個對象存入緩存區(qū),該 對象包括該網(wǎng)頁的標識和請隸時間,并在后續(xù)步驟D中進一步以當前時間 更新原有的時間;在步驟B中,根據(jù)所請求的網(wǎng)頁標識是否在緩存中存在來判斷該網(wǎng)頁是否抓取過;步驟C中,所述的抓取間隔為當前時間與緩存區(qū)中所述網(wǎng)頁對象 所包括時間的差值,所述時間閾值為該緩存區(qū)對應的時間闊值。
3、 根據(jù)權(quán)利要求2所述的網(wǎng)頁抓取方法,其特征在于,按照網(wǎng)頁抓取頻率的差異設置不同級別的緩存區(qū),其中不同級緩存區(qū)對應不同的抓取間隔的時間閾值;并根據(jù)網(wǎng)頁的抓取頻率將網(wǎng)頁的對象在不同級的緩存區(qū)中遷 移。
4、 根據(jù)權(quán)利要求3所述的網(wǎng)頁抓取方法,其特征在于,所述每一級的緩存區(qū)對應設置一個抓取頻率等級值,在所述每個網(wǎng)頁的對象中進一步設置抓取次數(shù),該抓取次數(shù)的初始值為0;在步驟D中,進一步包括如果網(wǎng)頁有更新,則將該網(wǎng)頁對象中的抓 取次數(shù)加1,如果網(wǎng)頁沒有更新,則該網(wǎng)頁對象中的抓取次數(shù)減1;并比較該網(wǎng)頁對象的抓取次數(shù)和該網(wǎng)頁對象所屬緩存區(qū)的抓取頻率等級值,如果抓 取次數(shù)大于所述抓取頻率等級值,則將該網(wǎng)頁對象移動到時間閾值更短的上 一級緩存區(qū),如果抓取次數(shù)小于所述抓取頻率等級值,則將該網(wǎng)頁對象移動 到時間閾值更長的下一級緩存區(qū)。
5、 根據(jù)權(quán)利要求1所述的網(wǎng)頁抓取方法,其特征在于,步驟D所述査 詢所述網(wǎng)頁是否有更新具體為根據(jù)超文本傳輸協(xié)議的返回碼査詢判斷所述 網(wǎng)頁是否有更新。
6、 根據(jù)權(quán)利要求1至5任一項所述的網(wǎng)頁抓取方法,其特征在于,所 述網(wǎng)頁為超文本標記語言網(wǎng)頁。
7、 一種網(wǎng)頁抓取服務器,其特征在于,包括 網(wǎng)頁請求接收模塊,用于接收網(wǎng)頁請求;判斷模塊,用于判斷所請求網(wǎng)頁是否抓取過和抓取間隔,在未抓取過時, 觸發(fā)抓取模塊,在抓取間隔大于預設的時間間隔時觸發(fā)查詢模塊;査詢模塊,用于查詢所述網(wǎng)頁是否有更新,在有更新時觸發(fā)抓取模塊; 抓取模塊,用于抓取網(wǎng)頁。
8、 根據(jù)權(quán)利要求7所述的網(wǎng)頁抓取服務器,其特征在于,進一步包括緩存區(qū),用于存儲抓取網(wǎng)頁的對象,且該緩存區(qū)具有對應的時間閾值;所述 判斷模塊根據(jù)所述緩存區(qū)中的網(wǎng)頁對象判斷網(wǎng)頁是否抓取過以及抓取間隔, 且所述用于比較的時間閾值為該緩存區(qū)對應的時間閾值。
9、 根據(jù)權(quán)利要求8所述的網(wǎng)頁抓取服務器,其特征在于,所述緩存區(qū)有至少兩級,每級緩存區(qū)對應不同的網(wǎng)頁抓取頻率和抓取間隔的時間閾值; 且所述網(wǎng)頁抓取服務器進一步包括對象遷移模塊,用于根據(jù)網(wǎng)頁的抓取 頻率將網(wǎng)頁的對象在不同級的緩存區(qū)中遷移。
10、 根據(jù)權(quán)利要求7至9任一項所述的網(wǎng)頁抓取服務器,其特征在于,所述網(wǎng)頁為超文本標記語言網(wǎng)頁。
全文摘要
本發(fā)明公開了一種網(wǎng)頁抓取方法及網(wǎng)頁抓取服務器,方法包括包括A.接收網(wǎng)頁請求;B.判斷所請求網(wǎng)頁是否抓取過,如果是,則執(zhí)行步驟C;否則,抓取該網(wǎng)頁,結(jié)束本流程;C.判斷所請求網(wǎng)頁的抓取間隔是否大于預設的時間閾值,如果是,則執(zhí)行步驟D;否則,不抓取該網(wǎng)頁,結(jié)束本流程;D.查詢所述網(wǎng)頁是否有更新,如果有更新,則抓取該網(wǎng)頁;否則,不抓取該網(wǎng)頁。所述服務器包括網(wǎng)頁請求接收模塊、判斷模塊、查詢模塊、抓取模塊。本發(fā)明可以減輕網(wǎng)頁抓取服務器的負擔,減少對網(wǎng)絡帶寬資源的占用,提高網(wǎng)頁抓取的效率。
文檔編號G06F17/30GK101178736SQ200710198530
公開日2008年5月14日 申請日期2007年12月11日 優(yōu)先權(quán)日2007年12月11日
發(fā)明者為 王, 宇 紀 申請人:騰訊科技(深圳)有限公司