門戶網站的死鏈檢查方法和裝置制造方法
【專利摘要】本發明提供了一種門戶網站的死鏈檢查方法和裝置。其中,該方法包括:根據門戶網站的檢查任務列表分配多個子線程;啟動多個子線程,使子線程從其負責的檢查任務的網站入口地址開始對網站進行逐層廣度遍歷檢查,并將檢查結果寫入內存數據庫;對多個子線程進行周期性輪詢檢查;將處于工作完畢狀態的子線程在內存數據庫中記錄的檢查結果寫入本地數據庫;根據本地數據庫中記錄的檢查結果統計門戶網站的死鏈情況。通過本發明,提高了死鏈的檢查效率。
【專利說明】口戶網站的死鏈檢查方法和裝置
【技術領域】
[0001] 本發明涉及通信領域,具體而言,涉及口戶網站的死鏈檢查方法和裝置。
【背景技術】
[0002] 用戶在訪問網頁時,有時會遇到死鏈現象,即用戶當前訪問的服務器的地址已經 改變了,無法通過用戶當前提供的地址鏈接到該服務器。現有技術中引入了一種死鏈檢測 技術方案,該方案對檢測目標進行寬度遍歷,首先對種子列表和U化隊列初始化,再進行死 鏈分析和判斷操作,然后提取實體E中的所有超鏈接,對提取的所有超鏈接進行網頁去重、 鏈接篩選等預處理提高數據采集效率,然后將處理后的U化加入U化隊列繼續進行檢測。
[0003] 發明人在研究中發現,現有技術中的死鏈檢測技術采用單一進程的方式對網站的 U化進行檢查,尤其在對存在多個分站或多個子欄目的口戶網站檢查時,執行效率較差。
【發明內容】
[0004] 有鑒于此,本發明實施例的目的在于提供口戶網站的死鏈檢查方法和裝置,W提 高死鏈的檢查效率。
[0005] 第一方面,本發明實施例提供了一種口戶網站的死鏈檢查方法,包括:根據口戶網 站的檢查任務列表分配多個子線程;啟動多個子線程,使子線程從其負責的檢查任務的網 站入口地址開始對網站進行逐層廣度遍歷檢查,并將檢查結果寫入內存數據庫;對多個子 線程進行周期性輪詢檢查;將處于工作完畢狀態的子線程在內存數據庫中記錄的檢查結果 寫入本地數據庫;根據本地數據庫中記錄的檢查結果統計口戶網站的死鏈情況。
[0006] 結合第一方面,本發明實施例提供了第一方面的第一種可能的實施方式,其中,上 述根據口戶網站的檢查任務列表分配多個子線程包括:為口戶網站的檢查任務列表中的每 個檢查任務分配一個子線程的個數。
[0007] 結合第一方面,本發明實施例提供了第一方面的第二種可能的實施方式,其中,根 據口戶網站的檢查任務列表分配多個子線程包括:根據平均分配原則和口戶網站的檢查任 務列表中的檢查任務總數選擇子線程的個數;將檢查任務列表中的檢查任務平均分配給每 個子線程。
[0008] 結合第一方面,本發明實施例提供了第一方面的第H種可能的實施方式,其中,上 述根據口戶網站的檢查任務列表分配多個子線程包括:根據口戶網站的檢查任務列表中的 各個檢查任務所屬的口戶網站子欄目或分站分配子線程。
[0009] 結合第一方面,本發明實施例提供了第一方面的第四種可能的實施方式,其中,上 述子線程從其負責的檢查任務的網站入口地址開始對網站進行逐層廣度遍歷檢查包括:當 子線程發現當前地址在網站入口地址的域名或網站入口 U化目錄的范圍之外或者當前地 址與檢查任務列表中的檢查任務對應的地址重合,記錄當前地址的鏈接狀態,結束當前地 址的逐層廣度遍歷檢查。
[0010] 結合第一方面,本發明實施例提供了第一方面的第五種可能的實施方式,其中,上 述將處于工作完畢狀態的子線程在內存數據庫中記錄的檢查結果寫入本地數據庫包括:讀 取處于工作完畢狀態的子線程在內存數據庫中記錄的檢查結果;當檢查結果中記錄的死鏈 的地址與本地數據庫中記錄的檢查結果中的死鏈的地址相同時,將本地數據庫中記錄死鏈 的統計次數加1;其中,檢查結果包括:死鏈的地址、死鏈的狀態編碼、死鏈所在頁面、死鏈 的類型、死鏈的標題。
[0011] 第二方面,本發明實施例還提供了一種口戶網站的死鏈檢查裝置,包括:子線程分 配模塊,用于根據口戶網站的檢查任務列表分配多個子線程;子線程管理模塊,用于啟動多 個子線程,使子線程從其負責的檢查任務的網站入口地址開始對網站進行逐層廣度遍歷檢 查,并將檢查結果寫入內存數據庫;輪詢檢查模塊,用于對多個子線程進行周期性輪詢檢 查;檢查結果寫入模塊,用于將處于工作完畢狀態的子線程在內存數據庫中記錄的檢查結 果寫入本地數據庫;死鏈情況統計模塊,用于根據本地數據庫中記錄的檢查結果統計口戶 網站的死鏈情況。
[0012] 結合第二方面,本發明實施例提供了第二方面的第一種可能的實施方式,其中,上 述子線程分配模塊包括W下單元之一;一對一分配單元,用于為口戶網站的檢查任務列表 中的每個檢查任務分配一個子線程的個數;平均分配單元,用于根據平均分配原則和口戶 網站的檢查任務列表中的檢查任務總數選擇子線程的個數,將檢查任務列表中的檢查任務 平均分配給每個子線程;按欄分配單元,用于根據口戶網站的檢查任務列表中的各個檢查 任務所屬的口戶網站子欄目或分站分配子線程。結合第二方面,本發明實施例提供了第二 方面的第二種可能的實施方式,其中,上述子線程管理模塊包括;遍歷處理單元,用于設置 子線程在發現當前地址在網站入口地址的域名或網站入口 U化目錄的范圍之外或者當前 地址與檢查任務列表中的檢查任務對應的地址重合時,記錄當前地址的鏈接狀態,結束當 前地址的逐層廣度遍歷檢查。
[0013] 結合第二方面,本發明實施例提供了第二方面的第H種可能的實施方式,其中,上 述檢查結果寫入模塊包括;檢查結果讀取單元,用于讀取處于工作完畢狀態的子線程在內 存數據庫中記錄的檢查結果;檢查結果合并單元,用于當檢查結果中記錄的死鏈的地址與 本地數據庫中記錄的檢查結果中的死鏈的地址相同時,將本地數據庫中記錄死鏈的統計次 數加1 ;其中,該檢查結果包括;死鏈的地址、死鏈的狀態編碼、死鏈所在頁面、死鏈的類型、 死鏈的標題。
[0014] 本發明實施例提供的方法和裝置通過對檢查任務分配多個子線程,啟用多個子線 程并行對檢查任務進行檢查,該種并行檢查的方式提升了死鏈檢查的效率。同時,上述方法 和裝置中的子線程還將檢查結果暫存于對應的內存數據庫中,當完成檢查任務后,再寫入 到本地數據庫,該種方式不但可W提升各個子線程的檢查效率,還能夠提升數據的讀寫效 率,進而從整體上提高了死鏈檢查的運行效率。
[0015] 為使本發明的上述目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合 所附附圖,作詳細說明如下。
【專利附圖】
【附圖說明】
[0016] 為了更清楚地說明本發明實施例的技術方案,下面將對實施例中所需要使用的附 圖作簡單地介紹,應當理解,W下附圖僅示出了本發明的某些實施例,因此不應被看作是對 范圍的限定,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可W根據該 些附圖獲得其他相關的附圖。
[0017] 圖1示出了本發明實施例所提供的一種口戶網站的死鏈檢查方法流程圖;
[0018] 圖2示出了本發明實施例所提供的一種口戶網站的死鏈檢查方法示意圖;
[0019] 圖3示出了本發明實施例所提供的一種口戶網站的死鏈檢查裝置的結構框圖;
[0020] 圖4示出了本發明實施例所提供的一種口戶網站的死鏈檢查服務器的結構框圖。
【具體實施方式】
[0021] 下面將結合本發明實施例中附圖,對本發明實施例中的技術方案進行清楚、完整 地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。通常在 此處附圖中描述和示出的本發明實施例的組件可WW各種不同的配置來布置和設計。因 此,W下對在附圖中提供的本發明的實施例的詳細描述并非旨在限制要求保護的本發明的 范圍,而是僅僅表示本發明的選定實施例。基于本發明的實施例,本領域技術人員在沒有做 出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0022] 本發明實施例提供了一種口戶網站的死鏈檢查方法和裝置,適用于各類口戶網 站,尤其適用于存在多個分站或多個子欄目的口戶網站檢查,下面通過具體實施例進行描 述。
[0023] 參見圖1所示的口戶網站的死鏈檢查方法的流程圖,該方法包括W下步驟:
[0024] 步驟S102,根據口戶網站的檢查任務列表分配多個子線程;其中,子線程與檢查 任務列表中的檢查任務可W-一對應,也可W-對多,具體對應方式可W根據口戶網站的 實際情況選擇,本發明實施例對此不進行限制。
[00巧]步驟S104,啟動多個子線程,使子線程從其負責的檢查任務的網站入口地址開始 對網站進行逐層廣度遍歷檢查,并將檢查結果寫入內存數據庫;其中,逐層廣度遍歷檢查指 對當前網站的主頁先進行檢查,即檢查主頁上的可W鏈接;然后對各個鏈接打開的頁面進 行檢查,W此類推;直至打開的網頁不屬于當前網站入口地址的域名或網站入口 U化目錄 的范疇或打開的網頁與其它檢查任務的網站入口地址相同。
[0026] 步驟S106,對上述多個子線程進行周期性輪詢檢查。
[0027] 步驟S108,將處于工作完畢狀態的子線程在上述內存數據庫中記錄的檢查結果寫 入本地數據庫。其中,工作完畢狀態的子線程表明該子線程已經完成檢查任務。
[002引步驟S110,根據本地數據庫中記錄的檢查結果統計口戶網站的死鏈情況。
[0029] 本發明實施例的方法通過對檢查任務分配多個子線程,啟用多個子線程并行對檢 查任務進行檢查,該種并行檢查的方式提升了死鏈檢查的效率。同時,上述方法還將檢查結 果暫存于對應的內存數據庫中,當完成檢查任務后,再寫入到本地數據庫,該種方式不但可 W提升各個子線程的檢查效率,還能夠提升數據的讀寫效率,進而從整體上提高了死鏈檢 查的運行效率。
[0030] 考慮到子線程的分配方式可W有多種,本發明實施例對此進行舉例說明,例如一 對一的分配,基于此,上述根據口戶網站的檢查任務列表分配多個子線程可W包括;為口戶 網站的檢查任務列表中的每個檢查任務分配一個子線程的個數。
[0031] 子線程平均分配,基于此,上述根據口戶網站的檢查任務列表分配多個子線程的 步驟可W包括;根據平均分配原則和口戶網站的檢查任務列表中的檢查任務總數選擇子線 程的個數;將檢查任務列表中的檢查任務平均分配給每個子線程。例如,檢查任務列表中涉 及20項檢查任務,若平均分配原則為每個線程負責兩項檢查任務,則20-2 = 10,即需要的 子線程為10個,可W按照檢查任務列表中任務的先后順序為每個子線程分配兩項檢查任 務。
[0032] 按照口戶網站子欄目或分站分配子線程,基于此,上述根據口戶網站的檢查任務 列表分配多個子線程的步驟可W包括;根據口戶網站的檢查任務列表中的各個檢查任務所 屬的口戶網站子欄目或分站分配子線程。W國家級電網口戶網站為例,若按照口戶網站子 欄目或分站分配子線程,則可W將該口戶網站中各個省級網站分配給一個子線程,然后為 每個省下涉及的市級網站再分配一個子線程,即每個省級網站對應一個子線程,用于檢查 其市級網站的死鏈情況,W此類推。當然,也可W為國家級電網口戶網站內的各個省級網站 分別分配一個子線程,再為每個市級網站分別分配一個子線程。
[0033] 考慮到各個網頁可能會有很多鏈接,而該些鏈接中有些是與當前網頁關聯度不高 的鏈接,另外,還有各個網頁之間的鏈接可能相互交叉,為了盡量減少沒有意義的檢查,提 升檢查效率,上述子線程從其負責的檢查任務的網站入口地址開始對網站進行逐層廣度遍 歷檢查的步驟可W包括;當子線程發現當前地址在網站入口地址的域名或網站入口 U化目 錄的范圍之外或者當前地址與檢查任務列表中的檢查任務對應的地址重合,該子線程記錄 當前地址的鏈接狀態,結束當前地址的逐層廣度遍歷檢查。
[0034] 為了便于后續根據檢查結果定位死鏈和死鏈原因,上述將處于工作完畢狀態的子 線程在上述內存數據庫中記錄的檢查結果寫入本地數據庫的步驟可W包括;讀取處于工作 完畢狀態的子線程在內存數據庫中記錄的檢查結果;當檢查結果中記錄的死鏈的地址與本 地數據庫中記錄的檢查結果中的死鏈的地址相同時,將本地數據庫中記錄死鏈的統計次數 加1 ;其中,該檢查結果包括;死鏈的地址、死鏈的狀態編碼、死鏈所在頁面、死鏈的類型、死 鏈的標題等。如表1所示的內存數據庫中的檢查結果記錄表:
[0035] 表 1
[0036]
【權利要求】
1. 一種門戶網站的死鏈檢查方法,其特征在于,包括: 根據門戶網站的檢查任務列表分配多個子線程; 啟動所述多個子線程,使所述子線程從其負責的檢查任務的網站入口地址開始對所述 網站進行逐層廣度遍歷檢查,并將檢查結果寫入內存數據庫; 對所述多個子線程進行周期性輪詢檢查; 將處于工作完畢狀態的子線程在所述內存數據庫中記錄的檢查結果寫入本地數據 庫; 根據所述本地數據庫中記錄的檢查結果統計所述門戶網站的死鏈情況。
2. 根據權利要求1所述的方法,其特征在于,根據門戶網站的檢查任務列表分配多個 子線程包括: 為門戶網站的檢查任務列表中的每個檢查任務分配一個子線程的個數。
3. 根據權利要求1所述的方法,其特征在于,根據門戶網站的檢查任務列表分配多個 子線程包括: 根據平均分配原則和門戶網站的檢查任務列表中的檢查任務總數選擇子線程的個 數; 將所述檢查任務列表中的檢查任務平均分配給每個所述子線程。
4. 根據權利要求1所述的方法,其特征在于,根據門戶網站的檢查任務列表分配多個 子線程包括: 根據門戶網站的檢查任務列表中的各個檢查任務所屬的門戶網站子欄目或分站分配 子線程。
5. 根據權利要求1所述的方法,其特征在于,所述子線程從其負責的檢查任務的網站 入口地址開始對所述網站進行逐層廣度遍歷檢查包括: 當子線程發現當前地址在所述網站入口地址的域名或網站入口 URL目錄的范圍之外 或者所述當前地址與所述檢查任務列表中的檢查任務對應的地址重合,記錄所述當前地址 的鏈接狀態,結束所述當前地址的逐層廣度遍歷檢查。
6. 根據權利要求1所述的方法,其特征在于,將處于工作完畢狀態的子線程在所述內 存數據庫中記錄的檢查結果寫入本地數據庫包括: 讀取處于工作完畢狀態的子線程在所述內存數據庫中記錄的檢查結果; 當所述檢查結果中記錄的死鏈的地址與本地數據庫中記錄的檢查結果中的死鏈的地 址相同時,將所述本地數據庫中記錄所述死鏈的統計次數加1 ; 其中,所述檢查結果包括:死鏈的地址、死鏈的狀態編碼、死鏈所在頁面、死鏈的類型、 死鏈的標題。
7. -種門戶網站的死鏈檢查裝置,其特征在于,包括: 子線程分配模塊,用于根據門戶網站的檢查任務列表分配多個子線程; 子線程管理模塊,用于啟動所述多個子線程,使所述子線程從其負責的檢查任務的網 站入口地址開始對所述網站進行逐層廣度遍歷檢查,并將檢查結果寫入內存數據庫; 輪詢檢查模塊,用于對所述多個子線程進行周期性輪詢檢查; 檢查結果寫入模塊,用于將處于工作完畢狀態的子線程在所述內存數據庫中記錄的檢 查結果寫入本地數據庫; 死鏈情況統計模塊,用于根據所述本地數據庫中記錄的檢查結果統計所述門戶網站的 死鏈情況。
8. 根據權利要求7所述的裝置,其特征在于,所述子線程分配模塊包括以下單元之一:一對一分配單元,用于為門戶網站的檢查任務列表中的每個檢查任務分配一個子線程 的個數; 平均分配單元,用于根據平均分配原則和門戶網站的檢查任務列表中的檢查任務總數 選擇子線程的個數,將所述檢查任務列表中的檢查任務平均分配給每個所述子線程; 按欄分配單元,用于根據門戶網站的檢查任務列表中的各個檢查任務所屬的門戶網站 子欄目或分站分配子線程。
9. 根據權利要求7所述的裝置,其特征在于,所述子線程管理模塊包括: 遍歷處理單元,用于設置所述子線程在發現當前地址在所述網站入口地址的域名或網 站入口 URL目錄的范圍之外或者所述當前地址與所述檢查任務列表中的檢查任務對應的 地址重合時,記錄所述當前地址的鏈接狀態,結束所述當前地址的逐層廣度遍歷檢查。
10. 根據權利要求7所述的裝置,其特征在于,所述檢查結果寫入模塊包括: 檢查結果讀取單元,用于讀取處于工作完畢狀態的子線程在所述內存數據庫中記錄的 檢查結果; 檢查結果合并單元,用于當所述檢查結果中記錄的死鏈的地址與本地數據庫中記錄的 檢查結果中的死鏈的地址相同時,將所述本地數據庫中記錄所述死鏈的統計次數加1 ; 其中,所述檢查結果包括:死鏈的地址、死鏈的狀態編碼、死鏈所在頁面、死鏈的類型、 死鏈的標題。
【文檔編號】G06F9/50GK104331335SQ201410665988
【公開日】2015年2月4日 申請日期:2014年11月20日 優先權日:2014年11月20日
【發明者】王瀟, 孫建, 張淑娟, 顧廣宇 申請人:國家電網公司, 國網安徽省電力公司電力科學研究院, 國網安徽省電力公司六安供電公司