基于网络爬虫技术的大数据审计方法研究
2018-07-19陈伟孙梦蝶
陈伟 孙梦蝶
一、引 言
随着信息技术的发展,大数据时代的到来为审计工作带来了机遇和挑战。目前国内高度关注大数据技术及其在审计中的应用2015年8月国务院印发《促进大数据发展行动纲要》。2015年12月中共中央办公厅、国务院办公厅印发的《关于实行审计全覆盖的实施意见》指出:创新审计技术方法是实现审计全覆盖的一个重要手段,要求构建大数据审计工作模式,提高审计能力、质量和效率,扩大审计监督的广度和深度。2017年3月中共中央办公厅、国务院办公厅印发的《关于深化国有企业和国有资本审计监督的若干意见》提出“创新审计理念,完善审计监督体制机制,改进审计方式方法”。社会审计也高度重视大数据技术,中国注册会计师协会(2017)提出了研究大数据、人工智能等先进信息技术在注册会计师行业的落地应用,促进会计师事务所信息化。大数据审计也得到国际实务界的广泛关注,国际内部审计师协会2017年发布了《理解与审计大数据》指南(GTAG,2017);美国注册会计师协会AICPA(2014)分析了大数据环境对审计工作的影响。国内外学术界也高度关注大数据技术在审计中的应用。Earley(2015)分析了大数据技术给审计工作带来的机遇和挑战,研究了大数据技术在CPA审计中的应用;Gepp(2018)研究了目前大数据在审计研究与实践中的现状与未来机遇;陈伟(2017)分析了大数据审计的现状与发展,以及大数据环境下电子数据审计的机遇、挑战与方法(陈伟,2016),研究了大数据环境下基于模糊匹配的审计方法(陈伟,2016),基于Benford定律的大数据审计方法(陈伟,2017),大数据环境下基于数据可视化技术的电子数据审计方法(陈伟,2017),以及基于大数据可视化技术的审计线索特征挖掘方法(陈伟,2018)。
综上所述,研究大数据环境下的审计理论与方法具有重要的理论意义和应用价值。大数据环境下,审计单位需要获得第三方数据来源,并将被审计单位数据与外部其他数据进行集成分析以充分发挥大数据的潜力。然而,目前尚未建立起数据访问与数据共享机制,这限制了大数据审计的效果,影响了审计取证的查全率,造成了一定的审计风险。因此,大数据环境下如何获得外部相关数据成为大数据审计的一个重要问题。本文中,笔者结合目前大数据审计的研究与应用现状,研究基于网络爬虫技术的大数据审计方法。
二、基于网络爬虫技术的大数据审计方法研究背景分析
(一)大数据审计的原理
1.大数据的内涵及特点
2008年9月《Nature》(自然)杂志的“Big data special”大数据专题首次提出大数据(Big data)的概念。2011年6月,世界著名咨询机构麦肯锡公司发布了报告《Big data:The next frontier for innovation,competition, and productivity》(大数据:下一个创新、竞争和生产力的前沿),给出了大数据定义:大数据指的是大小超出常规数据库工具获取、存储、管理和分析能力的数据集(Manyika,2011)。Gartner(高德纳咨询公司)把大数据定义为:大数据是具有大容量、快速、和(或)多样性等特点的信息资产,为了能提高决策、洞察发现和流程优化,这种信息资产需要新形式的处理方法。大数据时代的到来为各行业提供了机遇和挑战。《Science》(科学)杂志2011年专刊讨论如何管理大数据(Science,2011)。目前,大数据的研究和应用已经成为国内外的热点。世界各国均高度重视大数据相关问题的研究与探索,并从国家战略层面推出研究规划以应对大数据带来的机遇和挑战。一般来说,大数据主要具有4个特点:大量(Volume)、多样性(Variety)、快速(Velocity)、真实性(Veracity),有的文献认为大数据还有具有可视化(Visualization)、价值(Value)、变化性(Variability)等特点(GTAG,2017)。
2.大数据审计的内涵
大数据审计(Big Data Auditing)目前尚无统一定义。根据目前大数据审计的研究与应用情况,大数据审计可以看成是随着大数据技术的发展而产生的一种新的审计方式,其内容包括大数据环境下的电子数据审计(如何利用大数据技术审计电子数据、如何审计大数据环境下的电子数据)和对大数据环境下的信息系统进行审计两方面的内容(陈伟,2017)。其中,大数据环境下的电子数据审计问题是目前研究与应用的热点。由此可见,大数据审计是伴随着大数据时代的到来,审计信息化的进一步发展。
(二)目前大数据审计数据采集过程中存在的问题分析
1.大数据审计中的数据来源分析
目前开展审计时,一般围绕审计工作方案,突出重点,采集审计数据所需的财务和业务电子数据,为积极运用大数据技术查核问题、评价判断和宏观分析,提高审计监督效率和水平奠定基础。由于目前一方面一些审计项目规模大、审计范围广,另一方面被审计单位信息化程度高、信息系统复杂,需要采集的各类数据较多,不仅仅包括数据库中的结构化电子数据,还包括一些会议记录、会议决议、办公会通知、办公文件等非结构化数据,以及一些政策、内部控制手册、各个系统的使用手册等非电子化材料。一般来说,目前在开展大数据审计时,数据来源主要包括三个方面:
表1 常用5种网络爬虫软件的主要优缺点分析
图1 基于网络爬虫技术的大数据审计方法原理
图2 基于Python的网络爬虫程序实现代码示例
一是上级审计机关数据中心推送的数据,如财政数据、税务数据、工商数据、电力数据、增值税开票数据等;
二是审计机关管辖范围内相关部门的数据,如财政、税务、工商等部门的数据;
三是在审计项目实施过程中根据需要从被审计单位采集的各类数据,采集内容可分为非结构化数据和结构化数据,非结构化数据比如,被审计单位基本情况、历史沿革、经营范围、组织结构、部门职责、生产经营和改革发展状况、内部审计报告、社会审计报告等;结构化数据比如报表、财务、生产经营的核心数据等。
2.目前常用的数据采集方法
目前,一般采用的数据采集方法为:被审计单位根据审计机关的要求定期报送数据;审计机关根据审计大数据建设的需要,定期到被审计单位采集数据;在审计项目实施过程中根据需要采集数据。常用的审计数据采集方法主要有以下4种:
(1)直接复制。当被审计单位的数据库系统与审计人员使用的数据库系统相同时,只需直接将被审计对象的数据复制到审计人员的计算机中即可。
(2)通过中间文件采集。指被审计单位按照审计要求,将原本不符合审计软件要求的数据转换成审计软件能读取的格式(如文本文件Txt格式、XML格式等)提供给审计人员。在数据采集的实际应用中,很多情况下采用文本文件作为约定的格式。这主要是因为大多数数据库管理系统都能导出、导入文本文件,应用范围广泛。
图3 基于Python的网络爬虫程序代码运行示例
图4 基于网络爬虫采集到的工商数据示例
(3)通过ODBC接口采集。指审计人员通过ODBC数据访问接口直接访问被审计单位信息系统中的数据,并把数据转换成审计所需的格式。
(4)通过备份/恢复的方式采集。指审计人员首先把被审计单位数据库系统中的数据备份出来(或者让被审计单位把该单位数据库系统中的数据备份出来),然后把该备份数据在审计人员或审计机关的数据库系统中恢复成数据库格式的数据,然后就可以在审计人员或审计机关的数据库系统中对采集来的被审计单位的数据进行审计数据分析。
3.目前常用数据采集方法的不足
目前审计大数据的全面性尚不够,比如,大数据环境下,审计单位需要获得第三方数据来源,并将被审计单位数据与外部其他数据进行集成分析以充分发挥大数据的潜力。然而,目前尚未建立起数据访问与数据共享机制,这限制了大数据审计的效果,影响了审计取证的查全率,造成了一定的审计风险。另外,对于地方审计机关或内部审计或社会审计来说,目前很难获得所需要的全部的财政、税务、工商等数据。
因此,目前除了通过以上方法获得被审计单位的内部和外部数据之外,审计人员还可以通过一些软件工具抓取网上的数据,或者可以实现自动搜索网上关于被审计单位一些公开报道的风险信息。
三、基于网络爬虫的大数据审计方法原理
网络爬虫(web crawler)是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。开展大数据审计需要各类相关数据,因此,网络爬虫技术对获得开展大数据审计的相关数据非常有帮助。
基于网络爬虫技术的大数据审计方法主要是充分利用被审计单位外部的公共数据,通过对这些数据和从被审计单位获得以及从其他单位获得的相关数据进行对比分析,从而更充分地发现相关审计线索,相对目前常用的方法,这种方法的优点是能扩展数据分析范围,更充分地发现相关审计线索。采用网络爬虫技术获取相关数据的过程如下:
(1)确定目的。用于确定抓取目标网站哪些网页上的哪些数据。
(2)分析页面结构。为了抓取上述的数据,需要对相应的网页页面进行分析。
(3)实现爬虫,获得所需数据。根据以上分析,采用相关网络爬虫软件,如Python等,实现以上数据的抓取功能。
(4)对获得的数据进行分析。针对获得的数据,在审计大数据集成和预处理的基础上,基于“集中分析,分散核查”的审计思路,采用大数据可视化工具对相关数据进行分析,审计人员通过对可视化的分析结果进行观察,快速从被审计大数据信息中发现异常数据,获得审计线索。另外,审计人员可以根据需要,对异常数据做细化分析,从不同的方面获得对被审计数据的理解,从而全面地分析被审计数据。在可视化分析结果的基础上,审计人员可以借助SQL查询方法和审计软件对被审计数据进行建模和分析,进一步获得相关证据。在此基础上,通过对这些结果数据做进一步的延伸审计和审计事实确认,最终获得审计证据。
综上分析,基于网络爬虫技术的大数据审计方法原理如图1所示。
四、基于网络爬虫技术的大数据审计方法应用案例
(一)案例背景
某制造集团有限公司是某省重点国有企业,公司成立于1980年,具有30多年从事火车发动机研发与生产的历史,是该省火车零部件发动机行业龙头企业。除了该省外,该制造集团有限公司在美国、英国、南非、日本等国设有200多家子公司。根据某市审计局2017年的审计计划安排,现对该制造集团有限公司开展企业领导人经济责任审计。本案例以经济责任审计项目为背景,探究该单位在招投标过程中是否存在违规、违法现象。
针对以上审计需要,审计人员首先根据采集来的被审计单位的招投标数据,根据中标次数和中标金额两个指标,采用SQL分析或EXCEL工具等,分析该单位所有招投标项目中中标次数和金额较多的单位。通过分析发现可疑的中标单位共50多家。
为了进一步分析以上中标单位的工商信息,特别是分析这些单位的法人和股东中是否与被审计单位的管理人员之间有关联等审计线索,需要获得以上中标单位的工商信息,但目前一般审计人员无法查询全国的工商数据,在实际的审计工作中,一般只能通过一些数据查询网站(如天眼、企查查等)查询获得这些工商数据,但当需要查询的数据量较大时,需要花费审计人员很多的时间和精力,如何批量查询相关数据成为困扰审计人员的问题。网络爬虫的出现为解决审计人员的这一问题提供了一种可行的方法,当然,通过这种方法只是初步分析疑点,最终确认审计证据时还需要到相关权威部门去查询确认这些工商数据。
(二)网络爬虫软件选择
目前已经比较成熟的网络爬虫软件多达上百种,常见的开源网络爬虫软件主要有:
(1)Python爬虫,如Scrapy、PyRailgun、QuickRecon等。
(2)Java爬虫,如Ex-Crawler、Arachnid、crawlzilla、Heritrix、ItSucks、heyDr、JSpider、jcrawl、webmagic等。
(3)C++爬虫,如Methabot 、larbin等。
(4)C#爬虫,如Sinawler 、NWebCrawler、Web Crawler等。
(5)PHP爬虫,如ThinkUp、OpenWebSpider、PhpDig等。
常用5种网络爬虫软件的优缺点分析如表1所示。由于Python语法简捷、清晰,功能强大、简单易学,并且具有丰富和强大的类库,是一种不受局限、跨平台的开源编程语言,因此,自Python语言诞生至今,得到了广泛应用和支持。众多开源的科学计算软件包都提供了Python的调用接口。因此,Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。因此,本文以Python语言为例,分析如何实现网络爬虫。
(三)网络爬虫的实现
基于以上分析,为了获得审计所需要的工商数据,可以采用网络爬虫软件开发数据采集程序,实现对所需要数据的采集。基于Python的网络爬虫程序部分实现代码示例如图2所示。
五、总 结
大数据时代的到来使得审计工作不得不面临被审计单位的大数据环境,大数据环境下如何获得所需要的审计数据成为开展审计工作的一个重要问题。本文针对目前常用数据采集方法的不足,研究了如何通过网络爬虫技术获得外部数据,从而为开展大数据审计打下了基础。通过网络爬虫获得的数据为后续分析打下了基础,比如可以对这些数据做社会关系网络分析等。