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