本技術(shù)涉及自動(dòng)化數(shù)據(jù)處理,具體涉及一種平臺(tái)報(bào)告自動(dòng)化批量下載方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在現(xiàn)代信息技術(shù)日益發(fā)達(dá)的背景下,網(wǎng)絡(luò)平臺(tái)上的數(shù)據(jù)量急劇增加。各類(lèi)網(wǎng)站提供海量的數(shù)據(jù)報(bào)告,這些報(bào)告常常包含對(duì)企業(yè)經(jīng)營(yíng)、科研、市場(chǎng)分析等領(lǐng)域具有重要價(jià)值的信息。隨著數(shù)據(jù)量的急劇增加,有效且高效地獲取這些信息變得尤為關(guān)鍵。
2、隨著自動(dòng)化技術(shù)的發(fā)展,通常通過(guò)網(wǎng)頁(yè)抓取工具和下載管理器來(lái)輔助下載網(wǎng)絡(luò)上各類(lèi)網(wǎng)站提供的數(shù)據(jù)報(bào)告,然而,上述方法只能處理靜態(tài)內(nèi)容和直接的文件下載,對(duì)于動(dòng)態(tài)生成的內(nèi)容和復(fù)雜的網(wǎng)頁(yè)結(jié)構(gòu),這些工具的能力受到明顯的限制,從而導(dǎo)致從網(wǎng)站上獲取的數(shù)據(jù)報(bào)告的數(shù)量有限。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種平臺(tái)報(bào)告自動(dòng)化批量下載方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),用于提高從網(wǎng)站上獲取的數(shù)據(jù)報(bào)告的數(shù)量。
2、第一方面,本技術(shù)提供了一種平臺(tái)報(bào)告自動(dòng)化批量下載方法,所述方法包括:在瀏覽器中打開(kāi)目標(biāo)網(wǎng)站并在所述目標(biāo)網(wǎng)站中登錄目標(biāo)網(wǎng)頁(yè);在所述目標(biāo)網(wǎng)頁(yè)中打開(kāi)多個(gè)目標(biāo)子頁(yè)面,并在各所述目標(biāo)子頁(yè)面中的搜索欄填寫(xiě)預(yù)設(shè)搜索內(nèi)容進(jìn)行搜索,得到多個(gè)子頁(yè)面鏈接;獲取預(yù)設(shè)關(guān)鍵詞和自定義提取規(guī)則;根據(jù)所述預(yù)設(shè)關(guān)鍵詞和所述自定義提取規(guī)則,在各所述子頁(yè)面鏈接中提取目標(biāo)報(bào)告對(duì)應(yīng)的元素,并根據(jù)所述目標(biāo)報(bào)告對(duì)應(yīng)的元素,確定各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接;根據(jù)各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接,下載所述目標(biāo)報(bào)告,將所述目標(biāo)報(bào)告保存至本地。
3、通過(guò)采用上述技術(shù)方案,為實(shí)現(xiàn)報(bào)告的自動(dòng)化批量下載,需要通過(guò)程序化的方式進(jìn)行操作。首先在瀏覽器中打開(kāi)目標(biāo)網(wǎng)站,并輸入賬號(hào)密碼完成登錄,以訪問(wèn)需要權(quán)限的報(bào)告頁(yè)面。登錄后,程序會(huì)預(yù)先設(shè)置好關(guān)鍵詞和提取規(guī)則,在搜索結(jié)果頁(yè)面中查找符合規(guī)則的元素,解析得到報(bào)告的下載地址。解析完成后,程序便可以批量訪問(wèn)這些提取出的下載鏈接,持續(xù)地將報(bào)告文件下載并保存到本地。通過(guò)這樣的自動(dòng)化流程,提高從網(wǎng)站上獲取的數(shù)據(jù)報(bào)告的數(shù)量,自動(dòng)批量下載海量報(bào)告。
4、可選的,所述在瀏覽器中打開(kāi)目標(biāo)網(wǎng)站并在所述目標(biāo)網(wǎng)站中登錄目標(biāo)網(wǎng)頁(yè),包括:通過(guò)selenium庫(kù)中的webdriver接口在瀏覽器打開(kāi)目標(biāo)網(wǎng)站;在所述目標(biāo)網(wǎng)站的登錄頁(yè)面中輸入用戶名和密碼,登錄目標(biāo)網(wǎng)頁(yè)。
5、通過(guò)采用上述技術(shù)方案,程序首先調(diào)用webdriver打開(kāi)目標(biāo)網(wǎng)站的登錄頁(yè),定位到賬號(hào)和密碼輸入框,并自動(dòng)填入預(yù)設(shè)的賬號(hào)密碼信息。提交登錄后,selenium會(huì)自動(dòng)處理登錄過(guò)程的各種元素交互。完成這一系列流程后,程序便通過(guò)用戶驗(yàn)證,成功登錄目標(biāo)網(wǎng)站。采用selenium?automated的方式實(shí)現(xiàn)登錄,不僅節(jié)省了手工操作的時(shí)間,而且可以精準(zhǔn)定位頁(yè)面元素,避免登錄過(guò)程中出現(xiàn)人為失誤。相比傳統(tǒng)人工登錄,自動(dòng)化登錄流程更為精準(zhǔn)可靠,大大提高了報(bào)告數(shù)據(jù)采集的效率。利用selenium這種成熟的自動(dòng)化測(cè)試工具,程序可以順利執(zhí)行目標(biāo)網(wǎng)站的登錄流程。配合程序自動(dòng)操作頁(yè)面元素,實(shí)現(xiàn)了報(bào)告采集任務(wù)中登錄環(huán)節(jié)的自動(dòng)化,為后續(xù)獲取保密報(bào)告數(shù)據(jù)奠定基礎(chǔ)。
6、可選的,所述在所述目標(biāo)網(wǎng)站的登錄頁(yè)面中輸入用戶名和密碼之后,還包括判斷當(dāng)前頁(yè)面是否進(jìn)入所述目標(biāo)網(wǎng)站的所述目標(biāo)網(wǎng)頁(yè);若未進(jìn)入所述目標(biāo)網(wǎng)站的所述目標(biāo)網(wǎng)頁(yè),則清空所述用戶名和所述密碼,在所述登錄頁(yè)面中重新輸入所述用戶名和所述密碼,若在所述登錄頁(yè)面中重新輸入所述用戶名和所述密碼預(yù)設(shè)次數(shù)后,則發(fā)送錯(cuò)誤信息至作業(yè)人員的終端設(shè)備;若進(jìn)入所述目標(biāo)網(wǎng)站的所述目標(biāo)網(wǎng)頁(yè),則通過(guò)selenium的cookie接口獲取當(dāng)前登錄狀態(tài)的cookies信息,并存儲(chǔ)所述cookies信息;通過(guò)selenium的get接口訪問(wèn)所述目標(biāo)網(wǎng)站的所述目標(biāo)網(wǎng)頁(yè),并將所述cookies信息加載到所述瀏覽器。
7、通過(guò)采用上述技術(shù)方案,selenium的頁(yè)面元素識(shí)別功能判斷當(dāng)前頁(yè)面是否為目標(biāo)網(wǎng)頁(yè)。如果未成功進(jìn)入目標(biāo)頁(yè),說(shuō)明登錄失敗。程序會(huì)清空用戶名和密碼,重新輸入預(yù)設(shè)次數(shù)后再判斷。這樣循環(huán)驗(yàn)證可以避免登錄環(huán)節(jié)的錯(cuò)誤。若連續(xù)重新登錄失敗,程序會(huì)自動(dòng)發(fā)送提示信息給相關(guān)人員。人工干預(yù)可以快速解決登錄故障,降低報(bào)告采集任務(wù)的失敗率。若最終登錄成功進(jìn)入目標(biāo)頁(yè)面,則用selenium獲取當(dāng)前登錄狀態(tài)的cookies信息,并存儲(chǔ)下來(lái)。這樣可以復(fù)用cookies直接訪問(wèn)目標(biāo)頁(yè)面,無(wú)需重復(fù)登錄,優(yōu)化了流程。在后續(xù)需要訪問(wèn)目標(biāo)網(wǎng)頁(yè)時(shí),程序直接利用selenium的get接口發(fā)送訪問(wèn)請(qǐng)求,并將存儲(chǔ)的cookies信息加載到該請(qǐng)求中,大幅提高目標(biāo)網(wǎng)站報(bào)告的采集效率。
8、可選的,所述根據(jù)所述預(yù)設(shè)關(guān)鍵詞和所述自定義提取規(guī)則,在各所述子頁(yè)面鏈接中提取目標(biāo)報(bào)告對(duì)應(yīng)的元素,并根據(jù)所述目標(biāo)報(bào)告對(duì)應(yīng)的元素,確定各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接,包括:獲取各所述子頁(yè)面鏈接的dom結(jié)構(gòu);根據(jù)所述預(yù)設(shè)關(guān)鍵詞,在各所述子頁(yè)面鏈接的dom結(jié)構(gòu)中搜索目標(biāo)報(bào)告對(duì)應(yīng)的第一元素;根據(jù)所述自定義提取規(guī)則對(duì)所述第一元素進(jìn)行篩選,得到第二元素;根據(jù)所述第二元素,構(gòu)建所述目標(biāo)報(bào)告的信息結(jié)構(gòu);根據(jù)所述目標(biāo)報(bào)告的信息結(jié)構(gòu),確定各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接。
9、通過(guò)采用上述技術(shù)方案,程序獲取網(wǎng)頁(yè)的dom樹(shù),并在樹(shù)結(jié)構(gòu)中根據(jù)關(guān)鍵詞搜索與報(bào)告相關(guān)的元素,這些元素包含報(bào)告名稱、格式等信息。根據(jù)預(yù)設(shè)的自定義提取規(guī)則對(duì)第一輪搜索結(jié)果進(jìn)行二次篩選。然后根據(jù)這些元素構(gòu)建報(bào)告的完整信息結(jié)構(gòu)。最后讀取報(bào)告對(duì)象的下載地址屬性,獲取到目標(biāo)報(bào)告的下載鏈接。經(jīng)過(guò)頁(yè)面解析和信息提取、篩選的流程,成功從復(fù)雜頁(yè)面中定位到可用的報(bào)告下載地址。這樣的自動(dòng)化解析機(jī)制,可以從海量搜索結(jié)果中有效提取出準(zhǔn)確的報(bào)告下載鏈接,大幅提升了報(bào)告獲取的效率。實(shí)現(xiàn)了從復(fù)雜頁(yè)面結(jié)構(gòu)到報(bào)告下載地址的高效歸集。
10、可選的,所述根據(jù)各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接,下載所述目標(biāo)報(bào)告,將所述目標(biāo)報(bào)告保存至本地,包括:獲取系統(tǒng)資源和網(wǎng)絡(luò)狀態(tài);根據(jù)所述系統(tǒng)資源和所述網(wǎng)絡(luò)動(dòng)態(tài),確定下載任務(wù)的最大并發(fā)數(shù),并按照所述最大并發(fā)數(shù)對(duì)所述目標(biāo)報(bào)告進(jìn)行下載;當(dāng)所述目標(biāo)報(bào)告下載完畢后,將所述目標(biāo)報(bào)告保存至本地。
11、通過(guò)采用上述技術(shù)方案,在獲取到目標(biāo)報(bào)告的下載鏈接后,程序需要將這批鏈接指向的報(bào)告文件下載并保存到本地。由于報(bào)告數(shù)量可能非常龐大,為了控制下載效率,需要優(yōu)化下載并發(fā)數(shù)。具體做法是,檢測(cè)當(dāng)前可用的系統(tǒng)資源狀況,同時(shí)也監(jiān)控網(wǎng)絡(luò)實(shí)時(shí)狀態(tài),判斷是否存在延遲或中斷。根據(jù)這些信息,程序可以計(jì)算出最大允許的并發(fā)下載數(shù)量。然后按照得到的最優(yōu)并發(fā)數(shù),開(kāi)啟多個(gè)線程同時(shí)下載多個(gè)報(bào)告文件。控制下載并發(fā)數(shù)可以使網(wǎng)絡(luò)資源和系統(tǒng)資源達(dá)到高效利用,又避免過(guò)載影響下載速度。所有報(bào)告下載完成后,程序會(huì)自動(dòng)將其存儲(chǔ)到指定的本地目錄中。既實(shí)現(xiàn)了報(bào)告的高速批量下載,又保證了服務(wù)器和客戶端的穩(wěn)定。
12、可選的,所述將所述目標(biāo)報(bào)告保存至本地之后,還包括:對(duì)所述目標(biāo)報(bào)告進(jìn)行完整性驗(yàn)證;若所述目標(biāo)報(bào)告的完整性符合預(yù)設(shè)要求,則根據(jù)所述目標(biāo)報(bào)告的內(nèi)容、類(lèi)型及業(yè)務(wù)需求,將所述目標(biāo)報(bào)告進(jìn)行分類(lèi)。
13、通過(guò)采用上述技術(shù)方案,下載保存了大量報(bào)告之后,需要檢驗(yàn)其完整性與正確性。通過(guò)算法驗(yàn)證每份報(bào)告內(nèi)容是否完整,驗(yàn)證完畢后將各報(bào)告自動(dòng)分類(lèi)存放到相關(guān)目錄中。分類(lèi)存儲(chǔ)可以方便后續(xù)快速檢索到所需類(lèi)型和主題的報(bào)告,提升分析工作的效率。報(bào)告驗(yàn)證與分類(lèi)的自動(dòng)化機(jī)制,可以在海量報(bào)告下載完成后對(duì)其進(jìn)行標(biāo)準(zhǔn)化處理,過(guò)濾掉無(wú)效報(bào)告,并有效組織存放可用報(bào)告,自動(dòng)化流程也減少了人為錯(cuò)誤發(fā)生的概率。
14、可選的,所述目標(biāo)報(bào)告進(jìn)行完整性驗(yàn)證,包括:對(duì)所述目標(biāo)報(bào)告的文件名和文件大小值進(jìn)行校驗(yàn);將所述目標(biāo)報(bào)告內(nèi)的文本信息與數(shù)據(jù)庫(kù)中存儲(chǔ)的報(bào)告樣例進(jìn)行匹配,計(jì)算文本相似度;如果所述目標(biāo)報(bào)告的文件名和文件大小校驗(yàn)通過(guò),且文本相似度高于預(yù)設(shè)閾值,則判斷該目標(biāo)報(bào)告完整性驗(yàn)證通過(guò)。
15、通過(guò)采用上述技術(shù)方案,為確保報(bào)告的有效性,對(duì)目標(biāo)報(bào)告的文件名和文件大小值進(jìn)行校驗(yàn),將目標(biāo)報(bào)告內(nèi)的文本信息與數(shù)據(jù)庫(kù)中存儲(chǔ)的報(bào)告樣例進(jìn)行匹配,計(jì)算文本相似度??梢杂行ёR(shí)別出損壞不全的報(bào)告并排除掉。保證后續(xù)分析和應(yīng)用的報(bào)告質(zhì)量。
16、第二方面,本技術(shù)提供一種平臺(tái)報(bào)告自動(dòng)化批量下載裝置,所述裝置包括:登錄模塊、搜索模塊、獲取模塊、生成模塊及下載模塊;其中,所述登錄模塊,用于在瀏覽器中打開(kāi)目標(biāo)網(wǎng)站并在所述目標(biāo)網(wǎng)站中登錄目標(biāo)網(wǎng)頁(yè);所述搜索模塊,用于在所述目標(biāo)網(wǎng)頁(yè)中打開(kāi)多個(gè)目標(biāo)子頁(yè)面,并在各所述目標(biāo)子頁(yè)面中的搜索欄填寫(xiě)預(yù)設(shè)搜索內(nèi)容進(jìn)行搜索,得到多個(gè)子頁(yè)面鏈接;所述獲取模塊,用于獲取預(yù)設(shè)關(guān)鍵詞和自定義提取規(guī)則;所述生成模塊,用于根據(jù)所述預(yù)設(shè)關(guān)鍵詞和所述自定義提取規(guī)則,在各所述子頁(yè)面鏈接中提取目標(biāo)報(bào)告對(duì)應(yīng)的元素,并根據(jù)所述目標(biāo)報(bào)告對(duì)應(yīng)的元素,確定各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接;所述下載模塊,用于根據(jù)各所述子頁(yè)面鏈接中的所述目標(biāo)報(bào)告的下載鏈接,下載所述目標(biāo)報(bào)告,將所述目標(biāo)報(bào)告保存至本地。
17、通過(guò)采用上述技術(shù)方案,為實(shí)現(xiàn)報(bào)告的自動(dòng)化批量下載,需要通過(guò)程序化的方式進(jìn)行操作。首先在瀏覽器中打開(kāi)目標(biāo)網(wǎng)站,并輸入賬號(hào)密碼完成登錄,以訪問(wèn)需要權(quán)限的報(bào)告頁(yè)面。登錄后,程序會(huì)預(yù)先設(shè)置好關(guān)鍵詞和提取規(guī)則,在搜索結(jié)果頁(yè)面中查找符合規(guī)則的元素,解析得到報(bào)告的下載地址。解析完成后,程序便可以批量訪問(wèn)這些提取出的下載鏈接,持續(xù)地將報(bào)告文件下載并保存到本地。通過(guò)這樣的自動(dòng)化流程,提高從網(wǎng)站上獲取的數(shù)據(jù)報(bào)告的數(shù)量,自動(dòng)批量下載海量報(bào)告。
18、第三方面,本技術(shù)提供一種電子設(shè)備,采用如下技術(shù)方案:包括處理器、存儲(chǔ)器、用戶接口及網(wǎng)絡(luò)接口,所述存儲(chǔ)器用于存儲(chǔ)指令,所述用戶接口和網(wǎng)絡(luò)接口用于給其他設(shè)備通信,所述處理器用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的指令,以使所述電子設(shè)備執(zhí)行如上述任一種平臺(tái)報(bào)告自動(dòng)化批量下載方法的計(jì)算機(jī)程序。
19、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),采用如下技術(shù)方案:存儲(chǔ)有能夠被處理器加載并執(zhí)行上述任一種平臺(tái)報(bào)告自動(dòng)化批量下載方法的計(jì)算機(jī)程序。
20、綜上所述,本技術(shù)包括以下至少一種有益技術(shù)效果:
21、1.自動(dòng)批量下載海量報(bào)告;
22、2.從海量搜索結(jié)果中有效提取出準(zhǔn)確的報(bào)告下載鏈接,大幅提升了報(bào)告獲取的效率。