天天看點

從HTML源代碼和頁面正文中提取特征向量

一、從樣本頁面的HTML源代碼中提取特征向量

1、從HTML源代碼中提取預設标簽的數量

    頁面的HTML源代碼中存在不同的Tag标簽,伺服器可以對這些标簽的數量進行統計,獲得釣魚網站的特征向量。以标簽“title”為例,通常釣魚網站為了防禦安全檢測網站的檢測行為,會對title标簽進行嵌套,即設定一個空的title标簽,然後在該标簽中再設一個真正的title标簽。而正規網站的頁面源代碼中則不會出現這種問題,正規頁面源代碼中隻有一層title标簽。是以伺服器可以将title标簽的數量作為樣本頁面的特征向量進行提取和使用。

    實際應用中,伺服器可以統計的标簽包括但不限于是下述幾種标簽:〈title>、〈body〉、<h>、、<a>、<img> 等。

2、從HTML源代碼中提取預設關鍵詞

    HTML源代碼中的一些關鍵詞也能夠展現釣魚頁面的特點,例如“window.location”、“document.net”等。伺服器可以對這些特定的關鍵詞進行統計,獲得樣本頁面的特征向量。實際應用中,伺服器可以統計樣本頁面中有否出現過特定關鍵詞,也可以統計特定關鍵詞出現的數量。

3、從HTML源代碼中提取貢獻度排名靠前的預設數量的代碼分片

    伺服器從HTML源代碼中提取貢獻度排名靠前的預設數量的代碼分片,作為特征向量。所謂代碼分片是指按照預設長度截取的代碼字元串,所謂貢獻度則用于表征代碼分片對樣本頁面差別于其他頁面的貢獻程度。

    過程如下:

    3.1 将HTML源代碼轉換為二進制資料流

    3.2 通過預設位元組長度的時間視窗對二進制資料流進行切片,獲得多個代碼分片

        本實施例中時間視窗的預設位元組長度可以設定為10或者16,本實施例不對具體的位元組長度進行限制。在獲得資料流後,從資料流的第一個位元組開始向後(當然也可以是從最後一個位元組開始向前)使用時間視窗截取一個長度為10位元組或16位元組的字元串,然後時間視窗向後移動一個位元組,繼續截取下一個字元串,以此類推,直至時間視窗移動到資料流結尾處為止。

        示例性的,假設資料流長度為256位元組,時間視窗的位元組長度為10,伺服器通過時間視窗截取的代碼分片數量為247個。伺服器截取的代碼分片數量由資料流的長度和時間視窗的位元組長度共同決定,對于N個位元組的資料流而言,如果使用位元組長度為X的時間視窗截取,則會獲得“N-(X-1) ”個代碼分片。

    3.3 對獲得的代碼分片按照貢獻度大小進行排序

        可以使用資訊增益算法(information gain)對代碼分片按照貢獻度排名,貢獻度大的代碼分片排名靠前。

    3.4 從排序後的代碼分片中提取貢獻度排名靠前的預設數量的代碼分片

    進一步的,伺服器可以使用時間視窗對資料流從前緻後做一次切片,并進行排序獲得預設數量個代碼分片,然後再使用同一個時間視窗對資料流從後至前做一次切片,并進行排序獲得預設數量個代碼分片。最終将兩次獲得的代碼分片作為特征向量使用。或者,伺服器還可以使用不同長度的時間視窗分别對資料流執行上述步驟SI至步驟S4,然後将多次獲得的代碼分片一并作為特征向量使用。

二、從樣本頁面的正文中提取特征向量

    所謂正文是指頁面中使用者肉眼可見的資料内容,包括文字、圖檔、連結等。本實施例中主要針對正文中的文字進行處理。與HTML源代碼不同,本方式中的文字為自然語言使用的文字,本實施例以中文為例,提取漢字形式的特征向量。伺服器從頁面中提取出文字資訊,去掉标題、标簽等部分,獲得正文内容。然後對正文内容進行分詞,獲得多個符合自然語言習慣的分詞,最後提取貢獻度排名靠前的預設數量的分詞,作為特征向量,該貢獻度用于表征分詞對樣本頁面差別于其他頁面的貢獻程度。

    此部分内容與自然語言處理方面的文本分類相似,不做過多贅述。

(摘自https://www.google.com/patents/CN105338001A?cl=zh)

繼續閱讀