無效鏈接的識別方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),尤其涉及一種無效鏈接的識別方法和裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,出現(xiàn)了大量的網(wǎng)站,網(wǎng)站中不可避免的存在一些缺陷和漏洞。目前技術(shù)中主要通過爬蟲技術(shù)主動進(jìn)行web掃描獲取網(wǎng)站鏈接,從而根據(jù)獲取的鏈接獲得網(wǎng)站結(jié)構(gòu),發(fā)現(xiàn)網(wǎng)站的缺陷和漏洞。爬蟲獲取的鏈接大都來自于網(wǎng)站的響應(yīng)頁面,這些響應(yīng)頁面中包括的鏈接有一些無效鏈接,無效鏈接即不存在的鏈接。用戶通過瀏覽器訪問無效鏈接后最直接的反應(yīng)就是返回頁面不存在。
[0003]現(xiàn)有技術(shù)中對無效鏈接的判斷,通常是根據(jù)網(wǎng)站返回的狀態(tài)碼進(jìn)行判斷,例如,如果鏈接對應(yīng)的響應(yīng)頁面不存在,那么網(wǎng)站返回狀態(tài)碼404,爬蟲裝置確定該鏈接為無效鏈接。由于網(wǎng)站行為是可以自行配置的,對于無效鏈接網(wǎng)站可以返回正常狀態(tài)碼,因此只根據(jù)狀態(tài)碼判斷無效鏈接會造成大量的誤判,導(dǎo)致無效鏈接的識別準(zhǔn)確性差。將無效鏈接誤判為有效鏈接會導(dǎo)致網(wǎng)站規(guī)模急劇膨脹,不利于網(wǎng)站的維護(hù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種無效鏈接的識別方法和裝置,能夠提高無效鏈接識別的準(zhǔn)確性。
[0005]本發(fā)明第一方面提供一種無效鏈接的識別方法,包括:
[0006]獲取待識別鏈接對應(yīng)的統(tǒng)一資源符URL,所述待識別鏈接對應(yīng)的URL包括第一目錄、第一文件名和第一擴展名;
[0007]根據(jù)所述待識別鏈接對應(yīng)的URL構(gòu)造多個無效鏈接,所述多個無效鏈接中的每個無效鏈接對應(yīng)的URL包括目錄、文件名和擴展名,所述多個無效鏈接對應(yīng)的URL包括的目錄、文件名和擴展名,與所述第一目錄、第一文件名和第一擴展名中的至少一個不同;
[0008]獲取所述多個無效鏈接對應(yīng)的響應(yīng)頁面和所述待識別鏈接對應(yīng)的響應(yīng)頁面;
[0009]確定所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接對應(yīng)的響應(yīng)頁面的相似度;
[0010]若所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接中的任意一個無效鏈接對應(yīng)的響應(yīng)頁面的相似度大于設(shè)定的相似度閾值,則確定所述待識別鏈接為無效鏈接。
[0011]可選的,所述確定所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接對應(yīng)的響應(yīng)頁面的相似度,包括:
[0012]對所述多個無效鏈接對應(yīng)的響應(yīng)頁面分別進(jìn)行去噪處理;
[0013]對所述多個無效鏈接中的每個無效鏈接對應(yīng)的響應(yīng)頁面進(jìn)行聚類運算,得到所述每個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0014]對所述多個無效鏈接對應(yīng)的響應(yīng)頁面的類別進(jìn)行聚類運算,得到所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0015]對所述待識別鏈接對應(yīng)的響應(yīng)頁面進(jìn)行聚類運算,得到所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0016]確定所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的類別與所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別的相似度;
[0017]所述若所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接中的任意一個無效鏈接對應(yīng)的響應(yīng)頁面的相似度大于設(shè)定的相似度閾值,則確定所述待識別鏈接為無效鏈接,包括:
[0018]若所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的任意一個類別,與所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的任意一個類別的相似度大于所述相似度閾值,則確定所述待識別鏈接為無效鏈接。
[0019]可選的,所述根據(jù)所述待識別鏈接對應(yīng)的URL構(gòu)造多個無效鏈接,包括:
[0020]獲取N個第二文件名,以及獲取M個第二擴展名,將所述N個第二文件名和所述M個第二擴展名進(jìn)行任意組合后,替換所述待識別鏈接對應(yīng)的URL中包括的所述第一文件名和所述第一擴展名,得到N*M個無效鏈接,M和N均為大于或等于I的正整數(shù);
[0021]將所述第一文件名與所述M個第二擴展名進(jìn)行任意組合后,替換所述待識別鏈接對應(yīng)的URL中包括的所述第一文件名和所述第一擴展名,得到M個無效鏈接;
[0022]構(gòu)造I個第二目錄,用所述I個第二目錄替換所述待識別鏈接對應(yīng)的URL中包括的所述第一目錄,得到I個無效鏈接,I為大于或等于I的正整數(shù)。
[0023]可選的,所述根據(jù)所述待識別鏈接對應(yīng)的URL構(gòu)造多個無效鏈接對應(yīng)的URL之前,所述方法還包括:
[0024]確定所述待識別鏈接是否已經(jīng)被識別過;
[0025]若所述待識別鏈接已經(jīng)被識別過,則從數(shù)據(jù)庫中查找所述待識別鏈接的信息,根據(jù)所述待識別鏈接的信息確定所述待識別鏈接為無效鏈接或有效鏈接;
[0026]若所述待識別鏈接沒有被識別過,則確定所述待識別鏈接對應(yīng)的頁面是否是重定向頁面;
[0027]若所述待識別對應(yīng)的頁面不是重定向頁面,則根據(jù)所述待識別鏈接對應(yīng)的URL構(gòu)造所述多個無效鏈接對應(yīng)的URL。
[0028]可選的,所述方法還包括:
[0029]若所述待識別鏈接對應(yīng)的頁面為重定向頁面,則獲取所述重定向頁面的響應(yīng)頁面;
[0030]若所述重定向頁面的響應(yīng)頁面中包括的狀態(tài)碼指示所述重定向頁面不存在,則確定所述重定向頁面對應(yīng)的鏈接為無效鏈接;
[0031]若所述重定向頁面的響應(yīng)頁面中包括的狀態(tài)碼指示所述重定向頁面存在,則確定所述重定向頁面對應(yīng)的鏈接是否被識別過;
[0032]若所述重定向頁面對應(yīng)的鏈接被識別過,則從所述數(shù)據(jù)庫中查找所述重定向頁面對應(yīng)的鏈接的信息,根據(jù)所述重定向頁面對應(yīng)的鏈接的信息確定所述重定向頁面對應(yīng)的鏈接為無效鏈接或有效鏈接;
[0033]若所述重定向頁面對應(yīng)的鏈接沒有被識別過,則根據(jù)所述重定向頁面對應(yīng)的鏈接構(gòu)造多個無效鏈接。
[0034]可選的,所述方法還包括:若所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接中的所有無效鏈接的響應(yīng)頁面的相似度均小于或等于所述相似度閾值,則確定所述待識別鏈接為有效鏈接。
[0035]可選的,在確定所述待識別鏈接為無效鏈接之后,所述方法還包括:
[0036]將所述待識別鏈接和所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別保存在數(shù)據(jù)庫信息中,并建立所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別與所述第一目錄的對應(yīng)關(guān)系。
[0037]本發(fā)明第二方面提供一種無效鏈接的識別裝置,包括:
[0038]第一獲取模塊,用于獲取待識別鏈接對應(yīng)的統(tǒng)一資源符URL,所述待識別鏈接對應(yīng)的URL包括第一目錄、第一文件名和第一擴展名,;
[0039]構(gòu)造模塊,用于根據(jù)所述待識別鏈接對應(yīng)的URL構(gòu)造多個無效鏈接,所述多個無效鏈接中的每個無效鏈接對應(yīng)的URL包括目錄、文件名和擴展名,所述多個無效鏈接對應(yīng)的URL包括的目錄、文件名和擴展名,與所述第一目錄、第一文件名和第一擴展名中的至少一個不同;
[0040]第二獲取模塊,用于獲取所述多個無效鏈接對應(yīng)的響應(yīng)頁面和所述待識別鏈接對應(yīng)的響應(yīng)頁面;
[0041]確定模塊,用于確定所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接對應(yīng)的響應(yīng)頁面的相似度;
[0042]識別模塊,用于若所述待識別鏈接對應(yīng)的響應(yīng)頁面和所述多個無效鏈接中的任意一個無效鏈接對應(yīng)的響應(yīng)頁面的相似度大于設(shè)定的相似度閾值,則確定所述待識別鏈接為無效鏈接。
[0043]可選的,所述確定模塊包括:
[0044]去噪單元,用于對所述多個無效鏈接對應(yīng)的響應(yīng)頁面分別進(jìn)行去噪處理;
[0045]聚類單元,用于對所述多個無效鏈接中的每個無效鏈接對應(yīng)的響應(yīng)頁面進(jìn)行聚類運算,得到所述每個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0046]所述聚類單元,還用于對所述多個無效鏈接對應(yīng)的響應(yīng)頁面的類別進(jìn)行聚類運算,得到所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0047]所述聚類單元,還用于對所述待識別鏈接對應(yīng)的響應(yīng)頁面進(jìn)行聚類運算,得到所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的類別;
[0048]確定單元,用于確定所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的類別與所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的類別的相似度;
[0049]所述識別模塊具體用于:若所述待識別鏈接對應(yīng)的響應(yīng)頁面聚合后的任意一個類另IJ,與所述多個無效鏈接對應(yīng)的響應(yīng)頁面聚合后的任意一個類別的相似度大于所述相似度閾值,則確定所述待識別鏈接為無效鏈接。
[0050]可選的,所述構(gòu)造模塊具體用于:
[0051 ] 獲取N個第二文件名,以及獲取M個第二擴展名,將所述N個第二文件名和所述M個第二擴展名進(jìn)行任意組合后,替換所述待識別鏈接對應(yīng)的URL中包括的所述第一文件名和所述第一擴展名,得到N*M個無效鏈接,M和N均為大于或等于I的正整數(shù);
[0052]將所述第一文件名與所述M個第二擴展名進(jìn)行任意組合后,替換所述待識別鏈接對應(yīng)的URL中包括的所述第一文件名和所述第一擴展名,得到M個無效鏈接;
[0053]構(gòu)造I個第二目錄,用所述I個第二目錄替換所述待識別鏈接對應(yīng)的URL中包括的所述第一目錄,得到I個無效鏈接,I為大于或等于I的正整數(shù)。
[0054]可選的,所述無效鏈接的識別裝置還包括預(yù)處理模塊,所述預(yù)處理模塊用于:
[0055]確定所述待識別鏈接是否已經(jīng)被識別過;
[0056]若所述待識別鏈接已經(jīng)被識別過,則從數(shù)據(jù)庫中查找所述待識別鏈接的信息,根據(jù)所述待識別鏈接的信息確定所述待識別鏈接為無效鏈接或有效鏈接;
[0057]若所述待識別鏈接沒有被識別過,則確定所述待識別鏈接對應(yīng)的頁面是否是重定向頁面;