本公開涉及計算機視覺、網(wǎng)頁自動化測試,具體涉及一種網(wǎng)頁元素的數(shù)據(jù)提取方法、裝置、電子設備及存儲介質(zhì)。
背景技術:
1、隨著計算機技術的不斷發(fā)展,用戶可以通過瀏覽器查閱多種資料、通過購物應用查找和觀看多種商品信息等。應用軟件可以通過交互頁面與用戶之間進行交互,交互頁面包括web網(wǎng)頁。web網(wǎng)頁中包括多種元素,例如文字、圖片、音頻、動畫、視頻等。
2、在實現(xiàn)本公開發(fā)明構思的過程中,發(fā)明人發(fā)現(xiàn)相關技術至少存在以下技術問題:網(wǎng)頁元素的提取依賴于瀏覽器自身的開發(fā)工具或擴展程序,很難基于用戶需求靈活地提取網(wǎng)頁元素及其相關信息,影響用戶體驗。
技術實現(xiàn)思路
1、鑒于上述問題,本公開提供了一種網(wǎng)頁元素的數(shù)據(jù)提取方法、裝置、電子設備及存儲介質(zhì)。
2、根據(jù)本公開的第一個方面,提供了一種網(wǎng)頁元素的數(shù)據(jù)提取方法,包括:
3、響應于檢測到針對目標網(wǎng)頁中目標網(wǎng)頁元素的提取操作,獲取目標網(wǎng)頁的代碼信息;
4、根據(jù)代碼信息,確定目標網(wǎng)頁的第一樣式數(shù)據(jù)和第一動效數(shù)據(jù),其中,第一動效數(shù)據(jù)用于實現(xiàn)網(wǎng)頁元素的動態(tài)效果;
5、根據(jù)目標網(wǎng)頁元素,從第一樣式數(shù)據(jù)中確定第二樣式數(shù)據(jù);
6、基于第二樣式數(shù)據(jù),從第一動效數(shù)據(jù)中確定第二動效數(shù)據(jù);以及
7、以目標格式輸出第二樣式數(shù)據(jù)和第二動效數(shù)據(jù)。
8、根據(jù)本公開的實施例,根據(jù)代碼信息,確定目標網(wǎng)頁的第一樣式數(shù)據(jù)和第一動效數(shù)據(jù),包括:
9、將代碼信息解析為詞法樹,其中,詞法樹包括m個第一節(jié)點和n個第二節(jié)點,第一節(jié)點包括語法規(guī)則節(jié)點,第二節(jié)點包括聲明語法規(guī)則節(jié)點,n為正整數(shù),m為正整數(shù);
10、基于m個第一節(jié)點,確定第一樣式數(shù)據(jù);以及
11、基于n個第二節(jié)點,確定第一動效數(shù)據(jù)。
12、根據(jù)本公開的實施例,其中,基于m個第一節(jié)點,確定第一樣式數(shù)據(jù),包括:
13、確定每個第一節(jié)點對應的選擇器和樣式定義信息,其中,選擇器用于控制網(wǎng)頁元素的樣式;以及
14、將選擇器和樣式定義信息處理為目標數(shù)據(jù)結構的第一樣式數(shù)據(jù)。
15、根據(jù)本公開的實施例,其中,確定每個第一節(jié)點對應的選擇器和樣式定義信息,包括:
16、根據(jù)第一節(jié)點的選擇器屬性,確定每個第一節(jié)點對應的選擇器;以及
17、調(diào)用第一節(jié)點的第一子函數(shù),獲取每個第一節(jié)點的樣式定義信息。
18、根據(jù)本公開的實施例,其中,基于n個第二節(jié)點,確定第一動效數(shù)據(jù),包括:
19、基于第二節(jié)點的標識名稱,從n個第二節(jié)點中篩選出包括動效關鍵字的l個第二節(jié)點,其中,l小于等于n,且l為正整數(shù);
20、根據(jù)第二節(jié)點的標識參數(shù)值,獲取l個第二節(jié)點的第一動效名,其中,第一動效名為目標網(wǎng)頁中網(wǎng)頁元素的動效名;
21、調(diào)用第二節(jié)點的第二子函數(shù),將l個第二節(jié)點的第一動效規(guī)則定義轉(zhuǎn)換為字符串形式的第二動效規(guī)則定義;以及
22、將第一動效名和第二動效規(guī)則定義處理為目標數(shù)據(jù)結構的第一動效數(shù)據(jù)。
23、根據(jù)本公開的實施例,其中,第一樣式數(shù)據(jù)包括與目標網(wǎng)頁元素及其子元素相關的選擇器和樣式定義信息,子元素表征在目標網(wǎng)頁中位于目標網(wǎng)頁元素內(nèi)部的元素,選擇器用于控制網(wǎng)頁元素和子元素的樣式;
24、根據(jù)目標網(wǎng)頁元素,從第一樣式數(shù)據(jù)中確定第二樣式數(shù)據(jù),包括:
25、獲取目標網(wǎng)頁元素的子元素列表,其中,子元素列表包括e個子元素,e為整數(shù);以及
26、根據(jù)目標網(wǎng)頁元素和e個子元素,從第一樣式數(shù)據(jù)中篩選出有效選擇器的樣式數(shù)據(jù),得到第二樣式數(shù)據(jù),其中,有效選擇器表征第一樣式數(shù)據(jù)中與目標網(wǎng)頁元素或子元素相關的選擇器。
27、根據(jù)本公開的實施例,其中,第二樣式數(shù)據(jù)中樣式定義信息包括樣式屬性和樣式屬性值,樣式屬性包括動效樣式屬性,第一動效數(shù)據(jù)包括第二動效規(guī)則定義;
28、基于第二樣式數(shù)據(jù),從第一動效數(shù)據(jù)中確定第二動效數(shù)據(jù),包括:
29、從第二樣式數(shù)據(jù)中確定動效樣式屬性的樣式屬性值;
30、根據(jù)樣式屬性值,解析得到第二動效名,其中,第二動效名為目標網(wǎng)頁元素及其子元素的動效名;
31、基于第二動效名,從第二動效規(guī)則定義中獲取第三動效規(guī)則定義。
32、根據(jù)本公開的實施例,其中,以目標格式輸出第二樣式數(shù)據(jù)和第二動效數(shù)據(jù),包括:
33、將第二樣式數(shù)據(jù)和第二動效數(shù)據(jù)分別轉(zhuǎn)換為層疊樣式表形式的第三樣式數(shù)據(jù)和第三動效數(shù)據(jù);以及
34、調(diào)用格式化處理函數(shù),對第三樣式數(shù)據(jù)和第三動效數(shù)據(jù)進行格式化,并輸出格式化后的第三樣式數(shù)據(jù)和第三動效數(shù)據(jù)。
35、根據(jù)本公開的實施例,還包括:
36、基于目標網(wǎng)頁元素的網(wǎng)頁屬性,獲取超文本標記語言形式的代碼信息,其中,超文本標記語言形式的代碼信息包括與目標網(wǎng)頁元素相關的代碼;以及
37、調(diào)用格式化處理函數(shù),對超文本標記語言形式的代碼信息進行格式化,并輸出格式化后的超文本標記語言形式的代碼信息。
38、根據(jù)本公開的實施例,其中,獲取目標網(wǎng)頁的代碼信息,包括:
39、基于目標網(wǎng)頁的樣式標簽,獲取代碼信息;和/或
40、根據(jù)與目標網(wǎng)頁的資源請求操作相關的請求地址,獲取形式為層疊樣式表的至少一個樣式文件;以及從至少一個樣式文件中獲取代碼信息。
41、本公開的第二方面提供了一種網(wǎng)頁元素的數(shù)據(jù)提取裝置,包括:
42、獲取模塊,用于響應于檢測到針對目標網(wǎng)頁中目標網(wǎng)頁元素的提取操作,獲取目標網(wǎng)頁的代碼信息;
43、確定模塊,用于根據(jù)代碼信息,確定目標網(wǎng)頁的第一樣式數(shù)據(jù)和第一動效數(shù)據(jù),其中,第一動效數(shù)據(jù)用于實現(xiàn)網(wǎng)頁元素的動態(tài)效果;
44、樣式確定模塊,用于根據(jù)目標網(wǎng)頁元素,從第一樣式數(shù)據(jù)中確定第二樣式數(shù)據(jù);
45、動效確定模塊,用于基于第二樣式數(shù)據(jù),從第一動效數(shù)據(jù)中確定的第二動效數(shù)據(jù);以及
46、輸出模塊,用于以目標格式輸出第二樣式數(shù)據(jù)和第二動效數(shù)據(jù)。
47、本公開的第三方面提供了一種電子設備,包括:一個或多個處理器;存儲器,用于存儲一個或多個程序,其中,當一個或多個程序被一個或多個處理器執(zhí)行時,使得一個或多個處理器執(zhí)行上述網(wǎng)頁元素的數(shù)據(jù)提取方法。
48、本公開的第四方面還提供了一種計算機可讀存儲介質(zhì),其上存儲有可執(zhí)行指令,該指令被處理器執(zhí)行時使處理器執(zhí)行上述網(wǎng)頁元素的數(shù)據(jù)提取方法。
49、本公開的第五方面還提供了一種計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述網(wǎng)頁元素的數(shù)據(jù)提取方法。
50、在本公開的實施例中,由于目標網(wǎng)頁的第一樣式數(shù)據(jù)和第一動效數(shù)據(jù)是從目標網(wǎng)頁的代碼信息中確定的,代碼信息是從原始資源文件中獲取的,因此,第一樣式數(shù)據(jù)和第二動效數(shù)據(jù)的獲取操作不依賴于瀏覽器的開發(fā)者工具或擴展程序,能夠靈活地從原始資源文件中獲取樣式數(shù)據(jù)和動效數(shù)據(jù),簡化了數(shù)據(jù)提取流程,提高了數(shù)據(jù)提取效率和用戶體驗。此外,在樣式數(shù)據(jù)和動效數(shù)據(jù)的提取過程中,在基于目標網(wǎng)頁元素從第一樣式數(shù)據(jù)中提取第二樣式數(shù)據(jù)之后,基于篩選后的第二樣式數(shù)據(jù)對第一動效數(shù)據(jù)進行篩選,無需在動效數(shù)據(jù)篩選過程中重新遍歷代碼信息,減少了數(shù)據(jù)處理量。