吳則建 王鵬虎 龐瑞江 黃永平
[摘要]本文介紹了網(wǎng)絡(luò)爬蟲(chóng)及主題爬蟲(chóng)原理,結(jié)合商業(yè)銀行內(nèi)部審計(jì)工作實(shí)踐,探索了主題網(wǎng)絡(luò)爬蟲(chóng)在商業(yè)銀行內(nèi)部審計(jì)中的實(shí)踐應(yīng)用及未來(lái)展望。
[關(guān)鍵詞]大數(shù)據(jù) ? ?智慧審計(jì) ? ?網(wǎng)絡(luò)爬蟲(chóng)
著移動(dòng)互聯(lián)網(wǎng)、社交媒體、電子商務(wù)等技術(shù)
的興起,互聯(lián)網(wǎng)生成了海量數(shù)據(jù)。在大數(shù)據(jù)審計(jì)環(huán)境下,如何快速、精準(zhǔn)、全面地獲取內(nèi)外部數(shù)據(jù),成為商業(yè)銀行實(shí)施大數(shù)據(jù)審計(jì)成功與否的前提。主題網(wǎng)絡(luò)爬蟲(chóng)是獲取內(nèi)外部數(shù)據(jù)的一個(gè)重要方法。
一、網(wǎng)絡(luò)爬蟲(chóng)簡(jiǎn)介
網(wǎng)絡(luò)爬蟲(chóng),又稱(chēng)網(wǎng)頁(yè)蜘蛛、網(wǎng)絡(luò)機(jī)器人,是一種按照一定的規(guī)則,自動(dòng)抓取互聯(lián)網(wǎng)信息的程序或腳本。網(wǎng)絡(luò)爬蟲(chóng)按照網(wǎng)頁(yè)爬取范圍的不同,一般分為通用網(wǎng)絡(luò)爬蟲(chóng)和主題網(wǎng)絡(luò)爬蟲(chóng)兩類(lèi)。
通用網(wǎng)絡(luò)爬蟲(chóng)是傳統(tǒng)搜索引擎(如谷歌、百度等)的重要組成部分。為滿(mǎn)足不同背景用戶(hù)的多樣性檢索目的和需求,通用網(wǎng)絡(luò)爬蟲(chóng)的目標(biāo)是盡可能在網(wǎng)絡(luò)上獲取足夠多的頁(yè)面、更大的網(wǎng)絡(luò)覆蓋率。通用網(wǎng)絡(luò)爬蟲(chóng)以某一個(gè)或多個(gè)URL作為種子地址開(kāi)始,先爬取種子URL網(wǎng)頁(yè)中的內(nèi)容,然后提取網(wǎng)頁(yè)內(nèi)包含的超鏈接列表,進(jìn)而對(duì)超鏈接列表中的地址進(jìn)行分析,將新增的超鏈接地址加入待爬行隊(duì)列,進(jìn)而重復(fù)網(wǎng)頁(yè)的爬取過(guò)程,直到滿(mǎn)足某停止條件退出網(wǎng)絡(luò)爬蟲(chóng)或一直持續(xù)爬取并更新網(wǎng)頁(yè)。通用網(wǎng)絡(luò)爬蟲(chóng)工作原理如圖1所示。
與通用網(wǎng)絡(luò)爬蟲(chóng)不同,主題(聚焦)網(wǎng)絡(luò)爬蟲(chóng)不是無(wú)目的地在網(wǎng)絡(luò)上爬取足夠多的頁(yè)面,而是選擇性地爬取那些預(yù)先定義好的與主題相關(guān)的頁(yè)面。主題網(wǎng)絡(luò)爬蟲(chóng)較通用網(wǎng)絡(luò)爬蟲(chóng)工作流程更為復(fù)雜,需要根據(jù)一定的頁(yè)面或者鏈接分析算法,過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留與主題相關(guān)的鏈接放入待爬取URL隊(duì)列。然后根據(jù)一定的搜索策略,從隊(duì)列中選擇下一步要爬取網(wǎng)頁(yè)的URL,并一直重復(fù)上述過(guò)程,直至達(dá)到系統(tǒng)某一條件時(shí)停止。主題網(wǎng)絡(luò)爬蟲(chóng)工作原理如圖2所示。
二、主題網(wǎng)絡(luò)爬蟲(chóng)在商業(yè)銀行內(nèi)部審計(jì)中的應(yīng)用
在當(dāng)前商業(yè)銀行內(nèi)部審計(jì)實(shí)踐中,數(shù)據(jù)來(lái)源主要以銀行各業(yè)務(wù)系統(tǒng)及內(nèi)部審計(jì)非現(xiàn)場(chǎng)等系統(tǒng)的銀行內(nèi)部結(jié)構(gòu)化數(shù)據(jù)為主,但在部分審計(jì)場(chǎng)景下,僅依靠?jī)?nèi)部結(jié)構(gòu)化數(shù)據(jù)無(wú)法很好地完成審計(jì)任務(wù)。如“是否關(guān)聯(lián)企業(yè)授信”問(wèn)題審計(jì)過(guò)程中,僅依靠行內(nèi)數(shù)據(jù)可能無(wú)法獲取完整的企業(yè)關(guān)聯(lián)信息;又如審計(jì)跟蹤過(guò)程中,針對(duì)監(jiān)管處罰信息,若僅依靠被審計(jì)單位主動(dòng)報(bào)送數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù),內(nèi)部審計(jì)很難發(fā)現(xiàn)舞弊等問(wèn)題;再如“內(nèi)部網(wǎng)站是否公開(kāi)存儲(chǔ)了敏感信息”問(wèn)題,審計(jì)過(guò)程中,僅依靠?jī)?nèi)部審計(jì)人員手動(dòng)查閱網(wǎng)頁(yè),很難達(dá)到頁(yè)面抽樣比例的要求,同時(shí)也很難達(dá)到審計(jì)效果。如何快速、有效地獲取商業(yè)銀行內(nèi)外相關(guān)數(shù)據(jù),進(jìn)而結(jié)合商業(yè)銀行內(nèi)部結(jié)構(gòu)化數(shù)據(jù)對(duì)多源數(shù)據(jù)進(jìn)行綜合分析,是大數(shù)據(jù)時(shí)代商業(yè)銀行內(nèi)部審計(jì)亟需解決的問(wèn)題。
(一)主題網(wǎng)絡(luò)爬蟲(chóng)在監(jiān)管動(dòng)態(tài)及趨勢(shì)分析中的應(yīng)用
商業(yè)銀行內(nèi)部審計(jì)的重點(diǎn)是內(nèi)部控制,是為減少內(nèi)部控制的流程設(shè)計(jì)與執(zhí)行的不完善而遭受的損失,而銀行監(jiān)管的重點(diǎn)是監(jiān)督銀行的整體經(jīng)營(yíng)情況和風(fēng)險(xiǎn)水平。如何把握監(jiān)管動(dòng)態(tài)、了解監(jiān)管趨勢(shì),是內(nèi)部審計(jì)工作確定內(nèi)控測(cè)試范圍及重點(diǎn)的一個(gè)重要因素。通過(guò)主題爬蟲(chóng)技術(shù),采用一定的篩選算法,可以根據(jù)監(jiān)管部門(mén)在互聯(lián)網(wǎng)上的公開(kāi)信息獲取監(jiān)管動(dòng)態(tài)及趨勢(shì)等相關(guān)數(shù)據(jù)。以下以云南省為例介紹主題網(wǎng)絡(luò)爬蟲(chóng)在獲取監(jiān)管行政處罰信息中的實(shí)踐應(yīng)用。
首先分析行政處罰主題相關(guān)頁(yè)面特征,云南省銀保監(jiān)局行政處罰信息首頁(yè)URL地址為:“http://www.cbrc.gov.cn/zhuanti/xzcf/getPcjgXZCFDocListDividePage/yunnan.html”,分析行政處罰詳細(xì)頁(yè)面URL,發(fā)現(xiàn)行政處罰頁(yè)面路徑大都以“29.html”結(jié)尾,并且文件正文包含了“行政處罰”“違法違規(guī)事實(shí)”“決定書(shū)文號(hào)”“處罰依據(jù)”等關(guān)鍵字,因此選取上述頁(yè)面特點(diǎn)作為強(qiáng)特征。同時(shí),行政處罰詳細(xì)頁(yè)面內(nèi)容較為規(guī)整,大部分?jǐn)?shù)據(jù)均可進(jìn)行結(jié)構(gòu)化處理。爬取技術(shù)方面,分析頁(yè)面結(jié)構(gòu)及網(wǎng)絡(luò)鏈路發(fā)現(xiàn),監(jiān)管部門(mén)網(wǎng)站大都有反爬取措施,很難通過(guò)傳統(tǒng)的爬蟲(chóng)方法自動(dòng)、快速地獲取數(shù)據(jù),并且由于該需求對(duì)系統(tǒng)性能及并發(fā)能力要求不高,經(jīng)過(guò)分析,采用模擬用戶(hù)使用瀏覽器的方式爬取數(shù)據(jù)。
根據(jù)頁(yè)面分析結(jié)果,選取種子URL地址,結(jié)合行政處罰頁(yè)面鏈接特征和頁(yè)面內(nèi)容中的關(guān)鍵字特征,對(duì)候選URL頁(yè)面進(jìn)行篩選。進(jìn)而獲取行政處罰詳細(xì)頁(yè)面,并對(duì)頁(yè)面關(guān)鍵要素進(jìn)行知識(shí)抽取。技術(shù)方案方面采用Python、selenium、geckodriver、XPath、Firefox的技術(shù)架構(gòu)。部分核心源代碼示例如下:
driver = webdriver.Firefox()
seed_province =
get_one_province_punish(seed_province, province)driver.close()
def getpunishurls(punishurl):
driver.get(punishurl)
punishurllist = driver.find_elements_by_xpath("/html/body/center/div/div[3]/ul/li/table/tbody/tr/td[3]/div[2]/div//a")punishdetaillinklist = []
for link in punishurllist:
href_link = link.get_attribute("href")
punishdetaillinklist.append(href_link)
return punishdetaillinklist
def getpunishdetail(url):
punish = {}
driver.get(url)
page_source = driver.page_source
punish['網(wǎng)址'] = url.strip()
titles = driver.find_elements_by_xpath('/html/body/center/div[3]/div[1]/div/div/table/tbody/tr[1]/td/table/tbody/tr[2]/td/div/div/p')punish['處罰標(biāo)題'] = titles_con.strip()
rows = driver.find_elements_by_xpath('/html/body/center/div[3]/div[1]/div/div/table/tbody/tr[1]/td/table/tbody//table/tbody/tr')for row in rows:
Str = row.text.strip().split('\n')
name = Str[0]
value = Str[len(Str)-1]
punish[name] = value
return punish
通過(guò)主題網(wǎng)絡(luò)爬蟲(chóng)獲取數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步分析,并對(duì)分析結(jié)果進(jìn)行可視化展示,如圖3—圖5所示。
除獲取監(jiān)管動(dòng)態(tài)及趨勢(shì)等相關(guān)數(shù)據(jù)外,還可利用主題網(wǎng)絡(luò)爬蟲(chóng)獲取監(jiān)管更加廣泛的信息,如獲取監(jiān)管最新政策、最新新聞、獎(jiǎng)勵(lì)等內(nèi)容。可對(duì)內(nèi)部審計(jì)工作提供一定的基礎(chǔ)數(shù)據(jù),并對(duì)實(shí)際工作提供一定參考和指引。
(二)主題網(wǎng)絡(luò)爬蟲(chóng)在數(shù)據(jù)安全審計(jì)中的應(yīng)用
隨著信息技術(shù)的飛速發(fā)展,近年來(lái)金融機(jī)構(gòu)生產(chǎn)、使用和共享的信息呈現(xiàn)指數(shù)級(jí)增長(zhǎng)態(tài)勢(shì),信息傳遞渠道和方式的日益增加,使得信息安全問(wèn)題凸顯,信息安全審計(jì)在信息系統(tǒng)審計(jì)中的作用更加重要,更加有必要去探索主題網(wǎng)絡(luò)爬蟲(chóng)在數(shù)據(jù)安全審計(jì)中的應(yīng)用。
首先構(gòu)建敏感信息關(guān)鍵字字典,將常見(jiàn)的“用戶(hù)名”“密碼”“user”“ftpuser”“password”“passwd”等敏感信息納入字典,并整理解析IP地址和文件共享地址等正則表達(dá)式列表。選取辦公網(wǎng)首頁(yè)為種子主題爬蟲(chóng)種子地址,進(jìn)而使用廣度優(yōu)先原則爬取網(wǎng)站頁(yè)面。爬取頁(yè)面內(nèi)容后,提取頁(yè)面內(nèi)容,將頁(yè)面內(nèi)容與敏感信息正則表達(dá)式做校驗(yàn)處理,然后對(duì)頁(yè)面內(nèi)容做分詞處理,將分詞結(jié)果與敏感信息關(guān)鍵字字典進(jìn)行模糊匹配,將匹配命中的頁(yè)面進(jìn)行標(biāo)記并標(biāo)識(shí)匹配的敏感信息,得出包含疑似敏感信息的頁(yè)面列表,進(jìn)而利用審計(jì)專(zhuān)家經(jīng)驗(yàn),對(duì)候選頁(yè)面進(jìn)行分析。
除網(wǎng)頁(yè)信息外,網(wǎng)站中通常還包括各類(lèi)文檔附件,如doc、xlsx、ppt、txt等附件。爬蟲(chóng)設(shè)計(jì)過(guò)程中,獲取候選URL鏈接時(shí),不僅考慮網(wǎng)站頁(yè)面,還加入了根據(jù)鏈接類(lèi)型及鏈接文件擴(kuò)展名設(shè)計(jì)的適配器,根據(jù)不同類(lèi)型選擇不同的適配器模塊,提取頁(yè)面及文件內(nèi)容。
三、總結(jié)與展望
在當(dāng)前大數(shù)據(jù)審計(jì)的趨勢(shì)下,如何更好地利用商業(yè)銀行內(nèi)外部數(shù)據(jù)完成審計(jì)工作,是內(nèi)部審計(jì)人員需要不斷思考的問(wèn)題。大數(shù)據(jù)審計(jì)的前提及首要條件就是獲取數(shù)據(jù),“工欲善其事,必先利其器”,主題網(wǎng)絡(luò)爬蟲(chóng)就是實(shí)現(xiàn)大數(shù)據(jù)審計(jì)的一把“利器”。主題網(wǎng)絡(luò)爬蟲(chóng)僅解決了部分?jǐn)?shù)據(jù)獲取問(wèn)題,面對(duì)實(shí)際工作中復(fù)雜的審計(jì)任務(wù),還需要數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)算法并結(jié)合審計(jì)人員的專(zhuān)業(yè)判斷,對(duì)多源數(shù)據(jù)進(jìn)行細(xì)致、專(zhuān)業(yè)的分析,這樣才能更好地發(fā)揮審計(jì)監(jiān)督作用。
(作者單位:中信銀行昆明審計(jì)中心 中信銀行,郵政編碼:650000,電子郵箱:wuzejian@citicbank.com)
主要參考文獻(xiàn)
陳偉,孫夢(mèng)蝶.基于網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的大數(shù)據(jù)審計(jì)方法研究[J].中國(guó)注冊(cè)會(huì)計(jì)師, 2018(7):78-82
牛艷芳,薛巖,鄧雪梅.審計(jì)大數(shù)據(jù)關(guān)聯(lián)的網(wǎng)絡(luò)分析平臺(tái)構(gòu)建及應(yīng)用研究[J].審計(jì)研究, 2018(5):37-44