官术网_书友最值得收藏!

3.3.2 基于自然人網絡瀏覽行為模擬的網絡發布信息的獲取方法

先前介紹的網絡媒體信息獲取方法的技術實質,可以統一歸屬于采用網絡交互重構機制實現網絡媒體信息的獲取。

一方面,在面向需要身份認證的靜態網頁實現發布信息獲取過程中,網絡媒體信息獲取環節通過網絡交互重構完整實現了身份認證過程與信息請求/響應過程;另一方面,為了實現動態網頁發布信息獲取,在通過網絡交互重構取得動態網頁發布內容后,首先需要基于獨立解釋引擎實現動態腳本片段解析,獲得動態網頁所對應的靜態網頁形態,進而繼續采用網絡交互重構機制實現靜態網頁主體內容與內嵌URL發布信息的獲取。

應當說,網絡交互重構機制是網絡媒體信息獲取的一般性方法,理論上,只要掌握網絡通信協議的信息交互過程,就可以通過網絡交互重構來實現對應協議發布信息的獲取。不過,隨著網絡應用的逐步深入,網絡媒體發布形態不斷推陳出新,不同網絡媒體信息交互過程存在極大區別。同時,新型網絡通信協議正在不斷得到應用,部分網絡通信協議,尤其是音/視頻信息的網絡交互過程并未對外公開發布。因此,在通過網絡交互重構實現網絡媒體信息獲取的過程中,需要對于不同網絡媒體逐一進行網絡信息交互重構,信息獲取技術實現的工作量異常龐大。同時,對于網絡交互過程尚出于保密階段的部分網絡通信協議而言,無法直接通過網絡交互重構實現對應協議發布信息的獲取。

正是由于通過網絡交互重構機制實現媒體信息獲取存在相當程度的技術局限性,在Web網站自動化功能/性能測試的啟發下,自然人網絡瀏覽行為模擬技術在網絡媒體信息獲取環節正在得到越來越廣泛的應用。基于自然人網絡瀏覽行為模擬實現網絡媒體發布信息獲取的技術實現過程是,利用典型的JSSh客戶端向內嵌JSSh服務器的網絡瀏覽器發送JavaScript指令,指示網絡瀏覽器開展網頁表單自動填寫、網頁按鈕/鏈接點擊、網絡身份認證交互、網發布頁信息瀏覽,以及音/視頻信息點播等系列操作。

在此基礎上,JSSh客戶端進一步要求網絡瀏覽器導出網頁文本內容,存儲網頁圖像信息,或在用于信息獲取的計算機上對正在播放的音/視頻信息進行屏幕錄像,最終面向各種類型的網絡內容、各種形態的網絡媒體實現發布信息的獲取,如圖3-13所示。

圖3-13 基于自然人網絡瀏覽行為模擬實現網絡媒體信息的獲取

(1)內嵌JSSh服務器的FireFox瀏覽器

Mozilla FireFox屬于典型的內嵌JSSh服務器的開源瀏覽器,它將JSSh服務器選作自身附加組件。外部應用程序——JSSh客戶端,可與FireFox瀏覽器內嵌的JSSh服務器(默認偵聽9997端口)建立通信連接,并向其發送JavaScript指令,指示FireFox操作當前瀏覽網頁的文檔對象,如圖3-14所示。內嵌JSSh服務器的FireFox瀏覽器順序執行來自JSSh客戶端的JavaScript指令,整體過程與FireFox解析動態網頁內的JavaScript腳本片段類似。

圖3-14 JSSh服務器與客戶端間的JavaScript指令交互

(2)典型的JSSh客戶端——FireWatir

作為典型的JSSh客戶端,FireWatir廣泛應用于Web網站功能和性能自動化測試。FireWatir基于腳本語言Ruby編寫,其可通過發送JavaScript指令,指示內嵌JSSh服務器的網絡瀏覽器(如Mozilla FireFox)進行網頁表單填寫、網頁按鈕/鏈接點擊,以及網頁內容瀏覽等系列操作。另外,FireWatir通過JavaScript指令還可以方便地操縱瀏覽器加載網頁的DOM對象,從而導出網頁主體內容,實現網絡媒體信息的獲取。

1.基于自然人網絡瀏覽行為模擬實現身份認證網站信息采集

當前Web網站主要通過填寫并提交HTTP網頁上的認證表單,實現網絡客戶端身份認證。因此,網絡媒體信息獲取環節可以通過JSSh客戶端向內嵌JSSh服務器的FireFox瀏覽器發送JavaScript指令,指示瀏覽器自動填寫網頁上的身份認證表單,并單擊相應按鈕提交身份認證請求。身份認證協商過程(即身份認證網絡交互過程)由瀏覽器自行處理,整個過程如同正在網絡瀏覽的自然人與Web網站進行身份認證網絡交互。

在身份認證成功后,JSSh客戶端繼續向內嵌JSSh服務器的FireFox瀏覽器發送JavaScript指令,指示瀏覽器加載身份認證網站發布信息。瀏覽器自行完成用于發布信息請求的網絡交互,并告知JSSh客戶端網站發布頁面加載完成。在此基礎上,JSSh客戶端指示瀏覽器導出當前加載網頁的主體內容,并對網頁內嵌URL逐一進行瀏覽與內容導出,最終完成對于身份認證網站發布信息的獲取工作。

(1)身份認證表單的自動填寫

在實現HTTP認證網頁身份認證表單的自動填寫前,首先需要識別身份認證表單元素,即身份認證表單所涉及的HTTP對象——用于用戶名和密碼信息輸入的文本框對象類型與對象名稱。在此基礎上,可以使用已在目標媒體上申請得到的用戶名和密碼信息,根據腳本語言Ruby的語法格式,構建并向JSSh服務器發送用于身份認證表單自動填寫的JavaScript指令,指示內嵌JSSh服務器的瀏覽器完成身份認證表單的自動填寫。

在基于自然人網絡瀏覽行為模擬,實現身份認證表單自動填寫的實現過程中,只需根據不同網絡媒體認證表單元素的區別,構建用于認證表單自動填寫的JavaScript指令。在指示瀏覽器完成認證表單自動填寫后,身份認證網絡交互過程全部由瀏覽器自行完成。這與通過網絡交互重構實現身份認證網站發布信息獲取期間,需要針對不同網絡媒體重構不同網絡交互過程相比,功能實現的復雜度顯著降低,技術方案的普適性明顯提高。

身份認證表單自動填寫登錄代碼段如下:

(2)身份認證協商與發布信息的獲取

在JSSh客戶端通過JavaScript指令,指示內嵌JSSh服務器的瀏覽器完成身份認證表單自動填寫與提交后,瀏覽器轉向與Web網站進行身份認證協商,這期間不再需要JSSh客戶端繼續參與。在瀏覽器成功完成網絡身份認證后,JSSh客戶端繼續指示JSSh服務器加載身份認證網站發布信息,并進一步通過JavaScript指令操作所加載網頁的文檔對象,提取網頁主體內容與網頁內嵌URL信息。內嵌JSSh服務器的瀏覽器在JSSh客戶端的指示下,逐一瀏覽并導出當前網頁內嵌URL所對應的網頁主體內容,最終完成身份認證網站發布信息的獲取工作。整個流程如圖3-15所示。

2.基于自然人網絡瀏覽行為模擬實現動態網頁信息獲取

采用自然人網絡瀏覽行為模擬技術進行動態網頁發布信息獲取,首先需要由JSSh客戶端通過JavaScript指令,指示內嵌JSSh服務器的瀏覽器加載動態網頁發布信息。在獲得網絡媒體關于動態網頁的響應信息后,瀏覽器自動完成對動態網頁內各類腳本片段的解析工作,獲得動態網頁所對應的靜態網頁形態。該階段不再只是針對具體的腳本語言(如JavaScript)進行動態腳本片段解析,凡是能在通用瀏覽器中正常瀏覽的動態網頁,其包含的任何腳本片段都可以基于自然人網絡瀏覽行為模擬實現動態腳本解析。

圖3-15 基于自然人網絡瀏覽行為模擬實現身份認協商與發布信息獲取流程

在此基礎上,瀏覽器進一步通過自身包含的網頁排版引擎Gecko,生成靜態網頁的HTML DOM樹。JSSh客戶端可以通過JavaScript指令操作靜態網頁HTML DOM樹,逐一導出靜態網頁及其內嵌URL所對應的發布內容,最終完成動態網頁發布信息的獲取工作。整個流程如圖3-16所示。

在基于自然人網絡瀏覽行為模擬實現動態網頁信息獲取過程中,動態網頁發布內容獲取與動態網頁腳本片段解析工作全部由瀏覽器自行完成。JSSh客戶端只是通過JavaScript指令指示網絡瀏覽器加載動態網頁,并在JSSh服務器告知與所請求的動態網頁對應的靜態網頁形態加載成功后,繼續通過JavaScript指令操作當前網頁HTML DOM樹來獲取動態網頁發布信息,整體過程與JSSh客戶端指示瀏覽器加載靜態網頁并無實質區別。

圖3-16 基于自然人網絡瀏覽行為模擬實現動態網頁發布信息獲取流程

代碼段如下:

3.利用自然人網絡瀏覽器行為模擬實現網絡媒體信息獲取的技術優勢

與通過網絡交互重構實現網絡媒體信息獲取不同,基于自然人網絡瀏覽行為模擬進行網絡媒體信息獲取過程中,與身份認證、信息請求相關的網絡交互過程,以及與腳本解析、HTML DOM樹生成相關的網頁處理過程,全都是在JSSh客戶端的指示下,由內嵌JSSh服務器的瀏覽器自行完成。網絡媒體信息獲取環節不再需要針對不同網絡媒體,重復實現網絡交互重構機制,有效降低了網絡媒體信息獲取工作的復雜度,顯著提高了網絡媒體信息獲取機制的普適性。

另一方面,在面對網絡交互過程極為復雜,甚至網絡交互方式并未對外公開的音/視頻信息時,可以基于自然人網絡瀏覽行為模擬實現音/視頻內容的自動點播,并對正在播放的音/視頻流進行屏幕錄像,最終完成音/視頻信息的統一獲取。在這種情況下,所有能夠通過網絡瀏覽器得到的,各種形態、各個類型的互聯網信息,都可以采用自然人網絡瀏覽行為模擬技術實現網絡媒體信息的獲取,這也是本書將這類互聯網公開傳播信息統稱為網絡媒體信息的根本原因。

主站蜘蛛池模板: 广南县| 仪征市| 阳高县| 卓资县| 潼南县| 肃宁县| 娄底市| 吉隆县| 广水市| 屯留县| 孟连| 武清区| 台州市| 吴川市| 延吉市| 郁南县| 西安市| 扎鲁特旗| 鹰潭市| 怀集县| 绥阳县| 阳原县| 花莲市| 铜川市| 曲松县| 施秉县| 田林县| 紫金县| 瑞昌市| 恩平市| 林西县| 嘉善县| 巴林右旗| 东乌珠穆沁旗| 错那县| 时尚| 辽中县| 松桃| 前郭尔| 班玛县| 抚宁县|