是相互獨立的,所以瀏覽器間數(shù)據(jù)獲取并不會干擾。由于采用瀏覽器測試組件模擬用戶行為在進行網(wǎng)頁操作上擁有一定的通用行為以及在數(shù)據(jù)獲取上存在一定的通用功能,通過對這些通用行為和功能進行封裝,使得在針對社交網(wǎng)絡(luò)進行數(shù)據(jù)獲取的時候便于復用,減少工程時間開銷。目前能夠并發(fā)獲取多個群信息。
[0047]此方法突出了“所見即所得”的特點,只要網(wǎng)頁上能看見的,系統(tǒng)就能獲取到,而且此方法只依賴與網(wǎng)頁元素的結(jié)構(gòu),只要結(jié)構(gòu)不變,后續(xù)就無需作大規(guī)模修改,維護方便。
[0048]綜上所述,本發(fā)明在快速獲取數(shù)據(jù)的同時,兼顧了獲取數(shù)據(jù)的完整性,同時在后期維護上成本投入更小,能夠根據(jù)版本變化快速修改并投入使用。
【附圖說明】
[0049]圖1本發(fā)明實施例中QQ群數(shù)據(jù)采集流程圖。
[0050]圖2本發(fā)明實施例基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取系統(tǒng)框架圖。
[0051]圖3本發(fā)明實施例web端SmartQQ頁面示意圖。
[0052]圖4本發(fā)明實施例登陸web端SmartQQ頁面的示意圖。
[0053]圖5本發(fā)明實施例群組界面示意圖。
[0054]圖6本發(fā)明實施例某群的群消息示意圖。
[0055]圖7本發(fā)明實施例控制臺中輸出獲取圖6所示信息的示意圖。
[0056]圖8是本發(fā)明實施例網(wǎng)頁中的群列表示意圖。
[0057]圖9是本發(fā)明實施例群成員列表示意圖。
[0058]圖10是本發(fā)明實施例群共享文件示意圖。
[0059]圖11是本發(fā)明實施例群相冊示意圖。
[0060]圖12是本發(fā)明實施例中QQ群數(shù)據(jù)采集并行化設(shè)計圖。
【具體實施方式】
[0061]本發(fā)明中QQ群數(shù)據(jù)采集的流程如圖1所示,系統(tǒng)框架圖如圖2所示,其中QQ群數(shù)據(jù)的獲取包括包括即時信息獲取和非即時信息獲取。具體如下:
[0062]I)基于瀏覽器測試組件的即時信息獲取,具體可分為以下幾個步驟:
[0063]a)通過瀏覽器測試組件的接口,啟動瀏覽器,跳轉(zhuǎn)進入Web端QQ頁面。如圖3所示,打開SmartQQ (此為web端qq的一個版本)。
[0064]b)模擬用戶行為,輸入采集賬號和密碼,判斷是否需要人工輸入驗證碼,若需要,則提示操作人員進行人工輸入(Web端QQ采用的驗證碼經(jīng)過處理,目前難以通過圖像對比獲取正確的驗證碼),等以上完畢,點擊登陸。如圖4所示,自動輸入采集賬號和密碼,進行登陸。
[0065]c)登陸跳轉(zhuǎn)成功以后,等待頁面元素加載完畢,模擬用戶行為點擊進入群組界面。如圖5所示,跳轉(zhuǎn)成功以后,自動點擊相應標簽(分別為“聯(lián)系人”_> “群”)進入組群頁面,可以獲取群列表等。
[0066]d)通過一定的任務(wù)調(diào)度策略分配單個群的時間片,按策略進行輪詢,監(jiān)聽并獲取新消息。如圖6中的箭頭所示,隨機一個群中有用戶發(fā)出聊天信息“233333”,而在控制臺輸出了獲取的到的信息,包括發(fā)言者和發(fā)言內(nèi)容以及所屬的群,如圖7中的箭頭所示。
[0067]e)直到所有群輪詢完畢,重復步驟d)。
[0068]f)值得一提的是,步驟d)中的任務(wù)調(diào)度策略可自行選擇,一般情況下基于時間片輪詢的方式,為降低數(shù)據(jù)獲取的延遲,可根據(jù)群信息產(chǎn)生量按一定的策略或比例進行時間片分配。
[0069]2)基于瀏覽器測試組件的非即時信息獲取,具體可分為以下幾個步驟:
[0070]a)通過瀏覽器測試組件組件端口,啟動瀏覽器,跳轉(zhuǎn)進入Web端QQ群主頁。
[0071]b)模擬用戶行為,輸入采集賬號和密碼,判斷是否需要人工輸入驗證碼,若需要,則提示操作人員進行人工輸入(Web端QQ采用的驗證碼經(jīng)過處理,目前難以通過圖像對比獲取正確的驗證碼),等以上完畢,點擊登陸。
[0072]c)登陸跳轉(zhuǎn)成功以后,等待頁面元素加載完畢,獲取頁面中當前采集賬號已經(jīng)加入的群列表,查看頁面是否存在“更多群”等標簽,通過模擬用戶點擊,完整加載所有群,如圖8所示。
[0073]d)根據(jù)群列表進行輪詢,首先進入群成員列表頁面,如圖9所示。在此頁面,通過XPath元素定位,可獲取群公告和群成員列表。判斷群公告是否有更新,如有,則寫入數(shù)據(jù)庫,若沒有,則不做寫入數(shù)據(jù)庫操作。判斷群成員列表變動,如有新成員加入,則寫入數(shù)據(jù)庫,若有成員已退出該群,則修改數(shù)據(jù)庫中該成員狀態(tài)。
[0074]e)跳轉(zhuǎn)進入群共享文件頁面,如圖10所示,通過XPath進行頁面元素定位,獲取共享文件信息,判斷是否有更新,有則寫入數(shù)據(jù)庫,沒有則跳過。
[0075]f)跳轉(zhuǎn)進入群相冊頁面,如圖11所示,通過XPath進行頁面元素定位,獲取群相冊信息,判斷是否有更新,有則寫入數(shù)據(jù)庫,沒有則跳過。
[0076]g)若群列表未輪詢完畢,則跳轉(zhuǎn)至步驟d)。若群列表輪詢完畢,則關(guān)閉瀏覽器,切換采集賬號,跳轉(zhuǎn)至步驟a)。
[0077]此外,本發(fā)明中QQ群數(shù)據(jù)采集采用并行化設(shè)計,如圖12所示。瀏覽器測試組件提供一個稱為Hub的組件,通過Hub組件接受客戶端代碼請求,可分別啟動彼此隔離的瀏覽器進程,接著此后的客戶端代碼請求均由Hub組件通過啟動獨立進程時候配置的sess1nID進行命令分發(fā),分別和不同瀏覽器頁面DOM樹進行交互。以此實現(xiàn)并行化數(shù)據(jù)獲取。而消息總線主要由按需編寫的客戶端程序?qū)崿F(xiàn),包括采集賬號的獲取和分配,通過把采集賬號分配到不同線程進行數(shù)據(jù)采集。
【主權(quán)項】
1.一種基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,包括以下步驟: 1)在客戶端通過瀏覽器測試組件的端口,啟動瀏覽器,跳轉(zhuǎn)進入Web端QQ頁面; 2)模擬用戶行為,登陸欲獲取QQ群數(shù)據(jù)的QQ采集賬號; 3)通過對QQ采集賬號登陸的頁面DOM樹的監(jiān)聽,不斷獲取即時信息和非即時信息,并存儲到MySQL數(shù)據(jù)庫。2.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,所述瀏覽器測試組件是在啟動瀏覽器之前進行初始化,并向瀏覽器注入JavaScript庫,用于執(zhí)行客戶端發(fā)送的命令請求的核心組件。3.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,所述瀏覽器為無界面瀏覽器或有界面瀏覽器。4.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟1)包括:通過瀏覽器測試組件中的Hub組件不同端口實現(xiàn)多個瀏覽器啟動,客戶端針對每個瀏覽器啟動一個線程,每個線程對各自啟動的瀏覽器分別發(fā)送命令請求。5.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟2)包括:登陸時輸入QQ采集賬號的賬號和密碼,通過定位頁面驗證碼元素節(jié)點,判斷是否需要人工輸入驗證碼,若需要,則提示操作人員進行人工輸入,等以上流程完畢,點擊登陸按鈕進行登陸。6.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟3)中客戶端通過調(diào)用瀏覽器測試組件提供的不同接口發(fā)送瀏覽器測試組件規(guī)定的相應參數(shù),瀏覽器測試組件接收參數(shù),對客戶端請求進行解析,然后通過Http Proxy發(fā)送JS命令通知JavaScript庫執(zhí)行響應操作對瀏覽器頁面DOM樹進行監(jiān)聽。7.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟3)中,獲取即時信息包括以下步驟: 1- D登陸跳轉(zhuǎn)成功以后,等待頁面元素加載完畢,模擬用戶行為點擊進入QQ群組界面; 1- 2)通過任務(wù)調(diào)度策略分配單個群的時間片,按策略進行輪詢,監(jiān)聽并獲取新消息; 1- 3)直到所有群輪詢完畢,重復步驟1-2)。8.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟3)中,獲取非即時信息包括以下步驟: 2-1)登陸跳轉(zhuǎn)成功以后,等待頁面元素加載完畢,獲取頁面中當前賬號已經(jīng)加入的群列表,通過模擬用戶點擊,完整加載所有群; 2 - 2)根據(jù)群列表進行輪詢,首先進入群成員列表頁面,在此頁面,通過頁面元素定位獲取群公告和群成員列表;判斷群公告是否有更新,如有,則寫入數(shù)據(jù)庫,若沒有,則不做寫入數(shù)據(jù)庫操作;判斷群成員列表變動,如有新成員加入,則寫入數(shù)據(jù)庫,若有成員已退出該群,則修改數(shù)據(jù)庫中該成員狀態(tài); 2 - 3)跳轉(zhuǎn)進入群共享文件頁面,通過頁面元素定位獲取共享文件信息,判斷是否有更新,有則寫入數(shù)據(jù)庫,沒有則跳過; 2 - 4)跳轉(zhuǎn)進入群相冊頁面,通過頁面元素定位獲取群相冊信息,判斷是否有更新,有則寫入數(shù)據(jù)庫,沒有則跳過;2- 5)若群列表未輪詢完畢,則跳轉(zhuǎn)至步驟2-2),若群列表輪詢完畢,則關(guān)閉瀏覽器。9.如權(quán)利要求1所述的基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法,其特征在于,步驟2-2) ,2-3)和2-4)中所述頁面元素定位的方式包括XPath方式或CSS選擇器方式。10.一種基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取系統(tǒng),包括: 瀏覽器測試組件,用于通過端口啟動瀏覽器,并模擬用戶登陸Web端QQ ; 數(shù)據(jù)采集模塊,用于通過監(jiān)聽已登陸QQ的頁面元素,獲取即時信息和非即時信息; 數(shù)據(jù)存儲模塊,用于存儲獲取的QQ群數(shù)據(jù)。
【專利摘要】本發(fā)明公開了一種基于瀏覽器測試組件的QQ群數(shù)據(jù)獲取方法與系統(tǒng),通過給予瀏覽器測試組件,實現(xiàn)用戶行為模擬,由此方式實現(xiàn)Web端QQ等登陸操作,結(jié)合并行化設(shè)計,面向QQ群實現(xiàn)即時聊天信息和非即時信息的數(shù)據(jù)獲取。本發(fā)明能夠避免人工登陸操作,在快速獲取數(shù)據(jù)的同時,兼顧了獲取數(shù)據(jù)的完整性,同時在后期維護上成本投入更小,能夠根據(jù)版本變化快速修改并投入使用。
【IPC分類】G06F11/36
【公開號】CN105095070
【申請?zhí)枴緾N201510363954
【發(fā)明人】沙灜, 包秀國, 程工, 陳學敏, 賀敏, 梁棋, 馬宏遠, 王卿, 龐琳, 李雄, 劉瑋
【申請人】中國科學院信息工程研究所, 國家計算機網(wǎng)絡(luò)與信息安全管理中心
【公開日】2015年11月25日
【申請日】2015年6月26日