數(shù)據(jù)抓取方法及系統(tǒng)的制作方法
【專利摘要】一種數(shù)據(jù)抓取方法,其包括:當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;解析所述任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包;此外本公開還提供一種數(shù)據(jù)抓取系統(tǒng);本公開的方法和系統(tǒng)通過確定接收到的數(shù)據(jù)包所基于的協(xié)議類型來針對性的獲取可用于外部數(shù)據(jù)信息的數(shù)據(jù)包,而不是將抓取的所有的數(shù)據(jù)包都作為外部數(shù)據(jù)信息,這樣即避免了分析所有的被抓取的數(shù)據(jù)包而造成的資源的浪費,也避免了對冗余的無用數(shù)據(jù)包進行盲目的分析所消耗的時間,同時也避免了過多的冗余數(shù)據(jù)包對識別結(jié)果的干擾,提升了通過外部數(shù)據(jù)信息識別數(shù)據(jù)包來源網(wǎng)站的準確率。
【專利說明】
數(shù)據(jù)抓取方法及系統(tǒng)
技術領域
[0001 ]本公開涉及互聯(lián)網(wǎng)技術領域,特別涉及一種數(shù)據(jù)抓取方法及系統(tǒng)。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展,用戶每天可以從網(wǎng)絡當中獲取各種各樣的信息,而這些信息的來源我們卻是不知道的,有些信息可能是我們真正需要的,但是有些信息卻是網(wǎng)絡強行推送給我們的,或者有些訪問內(nèi)容是安全的,有些內(nèi)容是存在潛在危險的(例如。木馬病毒)或者是在特定的環(huán)境下是需要進行屏蔽的(例如,企業(yè)網(wǎng)絡中為了避免員工在工作時間觀看視頻、瀏覽購物網(wǎng)站等,就需要將來自這些網(wǎng)站的數(shù)據(jù)給屏蔽掉),總之,互聯(lián)網(wǎng)為我們提供海量數(shù)據(jù)信息的同時也是需要我們有選擇的接收的。
[0003]現(xiàn)有技術中面對互聯(lián)網(wǎng)提供的海量的數(shù)據(jù)信息時,選擇出需要的數(shù)據(jù)信息,或者屏蔽不需要的數(shù)據(jù)信息的方法為:當需要屏蔽某一來源的數(shù)據(jù)信息時就分析該來源的數(shù)據(jù)信息存在哪些個特征信息,然后將該特征信息抽離出來,當抓取到外部數(shù)據(jù)信息時,比較分析所述外部數(shù)據(jù)信息以確定其是否包括了被標定的特征信息,如果是則說明該信息是需要屏蔽的,如果否則表明該信息時可以接收的;此外對于只能接受有限個來源的數(shù)據(jù)的專用網(wǎng)絡,相反可以提取該有限個來源的數(shù)據(jù)信息的特征信息進行標定,當接收到外部數(shù)據(jù)信息時,比較分析該外部數(shù)據(jù)信息以確定其是否包括了別標定的特征信息,如果是則說明該信息是可以接收的信息,如果否則拒絕接收該數(shù)據(jù)信息。
[0004]現(xiàn)有技術的缺點在于,每一次抓取到來自外部的數(shù)據(jù)信息后都需要解析該外部數(shù)據(jù)信息,然后分析確定該外部數(shù)據(jù)信息是否包括了被標定的特征信息以決定該來源的數(shù)據(jù)信息所對應的網(wǎng)站是否需要被屏蔽,由于不知道那些數(shù)據(jù)包能夠真正反映網(wǎng)站的特征以用于確定被抓取的數(shù)據(jù)包所來自的網(wǎng)站,所以每一次都要抓取的大量的數(shù)據(jù)包,人工對這些大量的數(shù)據(jù)包一一進行分析比較以確定數(shù)據(jù)包所來自的網(wǎng)站,然后再確定該網(wǎng)站是否需要被屏蔽,這種做法不僅效率低下,同時還將抓取的大量造成干擾的數(shù)據(jù)包也進行了分析,浪費了大量的時間來做無用的分析工作,而且大量冗余的無用數(shù)據(jù)包還會對網(wǎng)站的識別結(jié)果造成不必要的干擾。
【發(fā)明內(nèi)容】
[0005]本公開提供一種數(shù)據(jù)抓取方法及系統(tǒng),用于至少解決上述技術問題之一。
[0006]—方面,本公開的實施例提供一種數(shù)據(jù)抓取方法,其包括:
[0007]當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;
[0008]解析所述任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;
[0009]根據(jù)確定的所述協(xié)議類型選取從所述多個數(shù)據(jù)包中作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。
[0010]另一方面,本公開的實施例還提供一種數(shù)據(jù)抓取系統(tǒng),其包括:
[0011 ]數(shù)據(jù)包抓取單元,用于當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;
[0012]協(xié)議類型確定單元,用于解析任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;
[0013]外部數(shù)據(jù)信息選取單元,用于根據(jù)確定的所述協(xié)議類型從所述多個數(shù)據(jù)包中選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。
[0014]本公開提供一種數(shù)據(jù)抓取方法及系統(tǒng)通過確定接收到的數(shù)據(jù)包所基于的協(xié)議類型來針對性的獲取可用于外部數(shù)據(jù)信息的數(shù)據(jù)包,而不是將抓取的所有的數(shù)據(jù)包都作為外部數(shù)據(jù)信息,這樣即避免了分析所有的被抓取的數(shù)據(jù)包而造成的資源的浪費,也避免了對冗余的無用數(shù)據(jù)包進行盲目的分析所消耗的時間,同時也避免了過多的冗余數(shù)據(jù)包對識別結(jié)果的干擾,提升了通過外部數(shù)據(jù)信息識別數(shù)據(jù)包來源網(wǎng)站的準確率。
【附圖說明】
[0015]為了更清楚地說明本公開實施例的技術方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本公開的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0016]圖1為本公開的數(shù)據(jù)抓取方法的一實施方式的流程圖;
[0017]圖2為本公開的數(shù)據(jù)抓取方法的另一實施方式的流程圖;
[0018]圖3為本公開的數(shù)據(jù)抓取方法的又一實施方式的流程圖;
[0019]圖4為本公開的數(shù)據(jù)抓取方法的再一實施方式的流程圖;
[0020]圖5為本公開的數(shù)據(jù)抓取系統(tǒng)的一實施方式的示意圖;
[0021 ]圖6為本公開的數(shù)據(jù)抓取系統(tǒng)的另一實施方式的示意圖;
[0022]圖7為本公開的數(shù)據(jù)抓取系統(tǒng)的又一實施方式的示意圖;
[0023]圖8為本公開的數(shù)據(jù)抓取系統(tǒng)的再一實施方式的示意圖
[0024]圖9為本公開的用戶設備的一實施方式的示意圖。
【具體實施方式】
[0025]為使本公開實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本公開實施例中的附圖,對本公開實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本公開一部分實施例,而不是全部的實施例?;诒竟_中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本公開保護的范圍。
[0026]需要說明的是,在不沖突的情況下,本申請中的實施方式及實施方式中的特征可以相互組合。
[0027]本公開可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。
[0028]本公開可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本公開,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
[0029]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0030]如圖1所示,本公開的一實施方式的數(shù)據(jù)抓取方法,其包括:
[0031 ] SI 1、當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;
[0032]S12、解析所述任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;
[0033]S13、根據(jù)確定的所述協(xié)議類型從所述多個數(shù)據(jù)包中選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。
[0034]本實施例中通過確定接收到的數(shù)據(jù)包所基于的協(xié)議類型來針對性的獲取可用于外部數(shù)據(jù)信息的數(shù)據(jù)包,而不是將抓取的所有的數(shù)據(jù)包都作為外部數(shù)據(jù)信息,這樣即避免了分析所有的被抓取的數(shù)據(jù)包而造成的資源的浪費,也避免了對冗余的無用數(shù)據(jù)包進行盲目的分析所消耗的時間,同時也避免了過多的冗余數(shù)據(jù)包對識別結(jié)果的干擾,提升了通過外部數(shù)據(jù)信息識別數(shù)據(jù)包來源網(wǎng)站的準確率。步驟Sll為,當某一網(wǎng)站被訪問時,抓取該網(wǎng)站所發(fā)送的多個數(shù)據(jù)包,即當某一網(wǎng)站被訪問時,該某一被訪問的網(wǎng)站的發(fā)送被訪問內(nèi)容的數(shù)據(jù)包至訪問端,這時在數(shù)據(jù)包的傳輸過程中抓取多個被發(fā)送的數(shù)據(jù)包。
[0035]如圖2所示,本公開的另一實施例的數(shù)據(jù)抓取方法,其中,
[0036]S21、當所述協(xié)議類型為tcp協(xié)議時,判斷所述數(shù)據(jù)包的目的端口號是否為特定端□號;
[0037]S22、如果是,則所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為:確定任意一個數(shù)據(jù)包為外部數(shù)據(jù)信息;
[0038]S23、如果否,則所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為:確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。
[0039]在本實施例中進一步將tcp協(xié)議進一步細分為了http協(xié)議以及普通的tcp協(xié)議,當接收到的數(shù)據(jù)包基于tcp協(xié)議時直接根據(jù)數(shù)據(jù)包中所包含的目的端口號(端口號為80和/或8080)即可確定該數(shù)據(jù)包是基于http協(xié)議的,這時只需要任意一個抓取的數(shù)據(jù)包即可用于識別該數(shù)據(jù)包來源的網(wǎng)站,因為對于http協(xié)議的數(shù)據(jù)包,其所有的特征信息在任意的一個數(shù)據(jù)包中都有;此外,還可以進一步通過解析接收的數(shù)據(jù)包中是否包含有GET URL的字節(jié),如果有則可判定該數(shù)據(jù)包為基于http協(xié)議的;本實施例中可以只通過驗證數(shù)據(jù)包的端口號是否為80和/或8080,也可以只通過驗證數(shù)據(jù)包中是否包含有GET URL的字節(jié),還可以同時采取兩種驗證方式以確定數(shù)據(jù)包所基于的協(xié)議類型;當通過單一一種驗證方式時,驗證速度快,但會存在一定的誤判率,當采取兩種驗證方式時雖然驗證速度有所減慢但是卻大大提升了對數(shù)據(jù)包協(xié)議類型的確定的準確率;在應用中,如果需要及時的響應,快速的驗證,而又允許有一定的誤差的場合則采取上述任意一種驗證方式即可;當對準確率要求高的場合則需要同時采取上述兩種驗證方式。
[0040]本實施例中當數(shù)據(jù)包中即不包含端口號80和/或8080,也不包含GET URL的字節(jié),則認為該數(shù)據(jù)包為普通的tcp數(shù)據(jù)包,對于普通的數(shù)據(jù)包,網(wǎng)站的特征信息存儲在前三個數(shù)據(jù)包中,因此,只需獲得前三個數(shù)據(jù)包即可。
[0041]如圖3所示,本公開的又一實施例的數(shù)據(jù)抓取方法,其中,確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息為:
[0042 ] S31、根據(jù)http三次握手通信確定被訪問網(wǎng)站返回的起始SYN序列號;
[0043]S32、確定攜帶的SYN序列號等于所述起始SYN序列號的數(shù)據(jù)包為第一數(shù)據(jù)包;
[0044]S33、確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度之和的數(shù)據(jù)包為第二數(shù)據(jù)包;
[0045]S34、確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度和第二數(shù)據(jù)包長度之和的數(shù)據(jù)包為第三數(shù)據(jù)包。
[0046]本實施例中通過tcp特有的三次握手協(xié)議以及握手協(xié)議中發(fā)送的數(shù)據(jù)包所包含的特有的SYN序列號(SYN( synchronous)是TCP/IP建立連接時使用的握手信號,并且對應有一個SYN序列號)首先確定出了發(fā)送的第一個數(shù)據(jù)包的序列號,以用于確定抓取的數(shù)據(jù)包中哪一個是第一數(shù)據(jù)包;然后再根據(jù)每一次發(fā)送的數(shù)據(jù)包長度確定出的相應下一個數(shù)據(jù)包的序列號的大小,以從抓取的數(shù)據(jù)包中進一步的確定出第二數(shù)據(jù)包和第三數(shù)據(jù)包;通過SYN這個特定的序列號確定了發(fā)送的數(shù)據(jù)包的排序,以便于選取包含了網(wǎng)站的特征信息的前三個數(shù)據(jù)包,避免了無序的抓取多個包(因為,第三個數(shù)據(jù)包以后的數(shù)據(jù)包只包含了文件內(nèi)容,不再有特征信息)對驗證結(jié)果的干擾以及因計算量的增大而造成的延時。
[0047]如圖4所示,本公開的再一實施例的數(shù)據(jù)抓取方法,其中,
[0048]當所述協(xié)議類型為udp協(xié)議時,所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為:
[0049]S41、解析抓取的所述多個數(shù)據(jù)包以確定所述多個數(shù)據(jù)包中具有遞增趨勢的特征序列號;
[0050]S42、將所述多個數(shù)據(jù)包按照所述特征序列號遞增的方式進行排列;
[0051 ] S43、確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。
[0052]在本實施例中針對udp協(xié)議沒有鏈接的概念的情況,而專門分析udp數(shù)據(jù)包中的前幾個字節(jié)中的字符,以確定出字符間存在遞增關系的字節(jié),并將該字節(jié)中的字符確定為特征序列號;因為基于udp的開發(fā)中數(shù)據(jù)包中并不存在哪一個字節(jié)是用來固定寫入數(shù)據(jù)包的序列號的(沒有約定,不同的程序員則根據(jù)個人的喜好與習慣將序列號寫在不同的字節(jié)中,但一般都在數(shù)據(jù)包的前幾個字節(jié)中,因此這里的分析是按照前幾個字節(jié)順序分析比較的),因此,需要對各個字節(jié)中的字符進行分析以確定;本實施例通過特征序列號確定了發(fā)送的Udp數(shù)據(jù)包的排序,以便于選取包含了網(wǎng)站的特征信息的前三個數(shù)據(jù)包,避免了無序的抓取多個包(因為,第三個數(shù)據(jù)包以后的數(shù)據(jù)包只包含了文件內(nèi)容,不再有特征信息)對驗證結(jié)果的干擾以及因計算量的增大而造成的延時。
[0053]本公開的一實施例還提供一種網(wǎng)站識別方法,包括:
[0054]確定需要識別的網(wǎng)站,并為所述需要識別的網(wǎng)站分配標識值;
[0055]以來自所述需要識別的網(wǎng)站的多個數(shù)據(jù)信息為輸入樣本,以所述標識值為輸出進行深度學習以確定深度學習模型;
[0056]抓取某一網(wǎng)站被訪問時發(fā)送的外部數(shù)據(jù)信息;
[0057]判斷將所述外部數(shù)據(jù)信息輸入所述深度學習模型得到的輸出結(jié)果是否為所述標識值。
[0058]本實施例中的抓取某一網(wǎng)站被訪問時發(fā)送的外部數(shù)據(jù)信息采用本公開的數(shù)據(jù)抓取方法的上述任意實施例的方法,本網(wǎng)站屏蔽方法的實施例通過深度學習的方法來預先確定了一個用于判定接收到的數(shù)據(jù)信息是否為需要屏蔽的數(shù)據(jù)的深度學習模型,該模型是根據(jù)接收到的整個數(shù)據(jù)信息來確定的,而不是數(shù)據(jù)信息中的某一個“特征信息”確定的,綜合考慮了更多的因素,因此通過該深度學習模型得到的識別網(wǎng)站的識別結(jié)果的準確度有了極大提升,降低了對接收的數(shù)據(jù)信息的誤判或者漏判的概率,從而提供了一種更加便于快速高效的判定接收到的數(shù)據(jù)包所來自的網(wǎng)站的方法和系統(tǒng)。
[°°59] 本公開實施方式中可以通過硬件處理器(hardware processor)來實現(xiàn)相關功能模塊。
[0060]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作合并,但是本領域技術人員應該知悉,本公開并不受所描述的動作順序的限制,因為依據(jù)本公開,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本公開所必須的。
[0061 ]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
[0062]如圖5所示,本公開的實施例還提供一種數(shù)據(jù)抓取系統(tǒng),其包括:
[0063]數(shù)據(jù)包抓取單元,用于當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;
[0064]協(xié)議類型確定單元,用于解析任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;
[0065]外部數(shù)據(jù)信息選取單元,用于根據(jù)確定的所述協(xié)議類型從所述多個數(shù)據(jù)包中選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。
[0066]本實施例中通過確定接收到的數(shù)據(jù)包所基于的協(xié)議類型來針對性的獲取可用于外部數(shù)據(jù)信息的數(shù)據(jù)包,而不是將抓取的所有的數(shù)據(jù)包都作為外部數(shù)據(jù)信息,這樣即避免了分析所有的被抓取的數(shù)據(jù)包而造成的資源的浪費,也避免了對冗余的無用數(shù)據(jù)包進行盲目的分析所消耗的時間,同時也避免了過多的冗余數(shù)據(jù)包對識別結(jié)果的干擾,提升了通過外部數(shù)據(jù)信息識別數(shù)據(jù)包來源網(wǎng)站的準確率。
[0067]如圖6所示,本公開的另一實施例的數(shù)據(jù)抓取系統(tǒng),其還包括:
[0068]端口號確定模塊,用于當所述協(xié)議類型為http協(xié)議時,判斷所述數(shù)據(jù)包的目的端口號是否為特定端口號;
[0069]所述外部數(shù)據(jù)信息選取單元包括,
[0070]第一選取組件,用于當所述協(xié)議類型為http協(xié)議,且所述數(shù)據(jù)包的目的端口號為特定端口號時,確定任意一個數(shù)據(jù)包為外部數(shù)據(jù)信息;
[0071]第二選取組件,用于當所述協(xié)議類型為http協(xié)議,但所述數(shù)據(jù)包的目的端口號不為特定端口號時,確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。
[0072]在本實施例中進一步將tcp協(xié)議進一步細分為了http協(xié)議以及普通的tcp協(xié)議,當接收到的數(shù)據(jù)包基于tcp協(xié)議時直接根據(jù)數(shù)據(jù)包中所包含的目的端口號(端口號為80和/或8080)即可確定該數(shù)據(jù)包是基于http協(xié)議的,這時只需要任意一個抓取的數(shù)據(jù)包即可用于識別該數(shù)據(jù)包來源的網(wǎng)站,因為對于http協(xié)議的數(shù)據(jù)包,其所有的特征信息在任意的一個數(shù)據(jù)包中都有;此外,還可以進一步通過解析接收的數(shù)據(jù)包中是否包含有GET URL的字節(jié),如果有則可判定該數(shù)據(jù)包為基于http協(xié)議的;本實施例中可以只通過驗證數(shù)據(jù)包的端口號是否為80和/或8080,也可以只通過驗證數(shù)據(jù)包中是否包含有GET URL的字節(jié),還可以同時采取兩種驗證方式以確定數(shù)據(jù)包所基于的協(xié)議類型;當通過單一一種驗證方式時,驗證速度快,但會存在一定的誤判率,當采取兩種驗證方式時雖然驗證速度有所減慢但是卻大大提升了對數(shù)據(jù)包協(xié)議類型的確定的準確率;在應用中,如果需要及時的響應,快速的驗證,而又允許有一定的誤差的場合則采取上述任意一種驗證方式即可;當對準確率要求高的場合則需要同時采取上述兩種驗證方式。
[0073]本實施例中當數(shù)據(jù)包中即不包含端口號80和/或8080,也不包含GET URL的字節(jié),則認為該數(shù)據(jù)包為普通的tcp數(shù)據(jù)包,對于普通的數(shù)據(jù)包,網(wǎng)站的特征信息存儲在前三個數(shù)據(jù)包中,因此,只需獲得前三個數(shù)據(jù)包即可。
[0074]如圖7所示,本公開的又一實施例的數(shù)據(jù)抓取系統(tǒng),其中,所述第二選取組件包括:
[0075]序列號確定器件,用于根據(jù)http三次握手通信確定被訪問網(wǎng)站返回的起始SYN序列號;
[0076]數(shù)據(jù)包確定器件,用于確定攜帶的SYN序列號等于所述起始SYN序列號的數(shù)據(jù)包為第一數(shù)據(jù)包;確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度之和的數(shù)據(jù)包為第二數(shù)據(jù)包;確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度和第二數(shù)據(jù)包長度之和的數(shù)據(jù)包為第三數(shù)據(jù)包。
[0077]本實施例中通過tcp特有的三次握手協(xié)議以及握手協(xié)議中發(fā)送的數(shù)據(jù)包所包含的特有的SYN序列號首先確定出了發(fā)送的第一個數(shù)據(jù)包的序列號,以用于確定抓取的數(shù)據(jù)包中哪一個是第一數(shù)據(jù)包;然后再根據(jù)每一次發(fā)送的數(shù)據(jù)包長度確定出的相應下一個數(shù)據(jù)包的序列號的大小,以從抓取的數(shù)據(jù)包中進一步的確定出第二數(shù)據(jù)包和第三數(shù)據(jù)包;通過SYN這個特定的序列號確定了發(fā)送的數(shù)據(jù)包的排序,以便于選取包含了網(wǎng)站的特征信息的前三個數(shù)據(jù)包,避免了無序的抓取多個包(因為,第三個數(shù)據(jù)包以后的數(shù)據(jù)包只包含了文件內(nèi)容,不再有特征信息)對驗證結(jié)果的干擾以及因計算量的增大而造成的延時。
[0078]如圖8所示,本公開的再一實施例的數(shù)據(jù)抓取系統(tǒng),其中,當所述協(xié)議類型為udp協(xié)議時,所述外部數(shù)據(jù)信息選取單元包括:
[0079]特征序列號確定組件,用于解析抓取的所述多個數(shù)據(jù)包以確定所述多個數(shù)據(jù)包中具有遞增趨勢的特征序列號;
[0080]數(shù)據(jù)包排隊組件,用于將所述多個數(shù)據(jù)包按照所述特征序列號遞增的方式進行排列;
[0081 ]數(shù)據(jù)包確定組件,用于確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。
[0082]圖9為本申請實施例提供的又一種用戶設備900的結(jié)構(gòu)示意圖,本申請具體實施例并不對用戶設備900的具體實現(xiàn)做限定。如圖9所示,該用戶設備900可以包括:
[0083]處理器(processor)910、通信接口(Communicat1nsInterface)920、存儲器(memory)930、以及通信總線940。其中:
[0084]處理器910、通信接口 920、以及存儲器930通過通信總線940完成相互間的通信。
[0085]通信接口920,用于與比如客戶端等的網(wǎng)元通信。
[0086]處理器910,用于執(zhí)行程序931,具體可以執(zhí)行上述方法實施例中的相關步驟。
[0087]具體地,程序931可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0088]處理器910可能是一個中央處理器CPU,或者是特定集成電路ASIC(Applicati0nSpecific Integrated Circuit),或者是被配置成實施本申請實施例的一個或多個集成電路。
[0089]上述實施例中的用戶設備,包括:
[0090]存儲器,用于存放程序;
[0091]處理器,用于執(zhí)行所述存儲器存儲的程序,所述程序使得所述處理器執(zhí)行以下操作:
[0092]當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包;
[0093]解析所述任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型;
[0094]根據(jù)確定的所述協(xié)議類型選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。
[0095]以上所描述的方法實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0096]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件。基于這樣的理解,上述技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0097]本領域內(nèi)的技術人員應明白,本公開的實施方式可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本公開可采用完全硬件實施方式、完全軟件實施方式、或結(jié)合軟件和硬件方面的實施方式的形式。而且,本公開可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0098]本公開是參照根據(jù)本公開實施方式的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0099]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0100]最后應說明的是:以上實施例僅用以說明本公開的技術方案,而非對其限制;盡管參照前述實施例對本公開進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本公開各實施例技術方案的精神和范圍。
【主權項】
1.一種數(shù)據(jù)抓取方法,包括: 當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包; 解析所述任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型; 根據(jù)確定的所述協(xié)議類型從所述多個數(shù)據(jù)包中選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。2.根據(jù)權利要求1所述的方法,其中, 當所述協(xié)議類型為http協(xié)議時,判斷所述數(shù)據(jù)包的目的端口號是否為特定端口號;如果是,則所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為:確定任意一個數(shù)據(jù)包為外部數(shù)據(jù)信息; 如果否,則所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為:確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。3.根據(jù)權利要求2所述的方法,其中,確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息為: 根據(jù)http三次握手通信確定被訪問網(wǎng)站返回的起始SYN序列號; 確定攜帶的SYN序列號等于所述起始SYN序列號的數(shù)據(jù)包為第一數(shù)據(jù)包; 確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度之和的數(shù)據(jù)包為第二數(shù)據(jù)包; 確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度和第二數(shù)據(jù)包長度之和的數(shù)據(jù)包為第三數(shù)據(jù)包。4.根據(jù)權利要求1所述的方法,其中, 當所述協(xié)議類型為udp協(xié)議時,所述根據(jù)確定的所述協(xié)議類型選取作為外部數(shù)據(jù)信息的數(shù)據(jù)包為: 解析抓取的所述多個數(shù)據(jù)包以確定所述多個數(shù)據(jù)包中具有遞增趨勢的特征序列號; 將所述多個數(shù)據(jù)包按照所述特征序列號遞增的方式進行排列; 確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。5.—種數(shù)據(jù)抓取系統(tǒng),包括: 數(shù)據(jù)包抓取單元,用于當某一網(wǎng)站被訪問時,抓取多個數(shù)據(jù)包; 協(xié)議類型確定單元,用于解析任意一個數(shù)據(jù)包以確定所對應的協(xié)議類型; 外部數(shù)據(jù)信息選取單元,用于根據(jù)確定的所述協(xié)議類型從所述多個數(shù)據(jù)包中選取作為用于識別所述某一網(wǎng)站的外部數(shù)據(jù)信息的數(shù)據(jù)包。6.根據(jù)權利要求5所述的系統(tǒng),其中,還包括: 端口號確定模塊,用于當所述協(xié)議類型為http協(xié)議時,判斷所述數(shù)據(jù)包的目的端口號是否為特定端口號; 所述外部數(shù)據(jù)信息選取單元包括, 第一選取組件,用于當所述協(xié)議類型為http協(xié)議,且所述數(shù)據(jù)包的目的端口號為特定端口號時,確定任意一個數(shù)據(jù)包為外部數(shù)據(jù)信息; 第二選取組件,用于當所述協(xié)議類型為http協(xié)議,但所述數(shù)據(jù)包的目的端口號不為特定端口號時,確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。7.根據(jù)權利要求6所述的系統(tǒng),其中,所述第二選取組件包括: 序列號確定器件,用于根據(jù)http三次握手通信確定被訪問網(wǎng)站返回的起始SYN序列號; 數(shù)據(jù)包確定器件,用于確定攜帶的SYN序列號等于所述起始SYN序列號的數(shù)據(jù)包為第一數(shù)據(jù)包;確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度之和的數(shù)據(jù)包為第二數(shù)據(jù)包;確定攜帶的SYN序列號等于所述起始SYN序列號與第一數(shù)據(jù)包長度和第二數(shù)據(jù)包長度之和的數(shù)據(jù)包為第三數(shù)據(jù)包。8.根據(jù)權利要求5所述的系統(tǒng),其中,當所述協(xié)議類型為udp協(xié)議時,所述外部數(shù)據(jù)信息選取單元包括: 特征序列號確定組件,用于解析抓取的所述多個數(shù)據(jù)包以確定所述多個數(shù)據(jù)包中具有遞增趨勢的特征序列號; 數(shù)據(jù)包排隊組件,用于將所述多個數(shù)據(jù)包按照所述特征序列號遞增的方式進行排列; 數(shù)據(jù)包確定組件,用于確定前三個數(shù)據(jù)包為外部數(shù)據(jù)信息。
【文檔編號】G06F17/30GK106066854SQ201610346373
【公開日】2016年11月2日
【申請日】2016年5月23日 公開號201610346373.3, CN 106066854 A, CN 106066854A, CN 201610346373, CN-A-106066854, CN106066854 A, CN106066854A, CN201610346373, CN201610346373.3
【發(fā)明人】李洪福, 李艷松
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司