基于Excel程序实现检测标准自动化查新

2023-09-25 18:59王群陈艳芳
现代信息科技 2023年16期
关键词:食品检验

王群 陈艳芳

摘  要:食品检验标准数量多,更新快,标准查新工作较难开展。为了高效开展标准查新工作,特开发一种基于Excel VBA平台的自动化程序。该程序通过自动分析网页信息的方式开展标准查新工作。利用该文方法一分钟最高可以查新15个标准,程序使用门槛较低,自动化程度较高,能够帮助检验机构对标准信息进行分析和加工,提高了工作效率。

关键词:食品检验;标准查新;自动化查新;VBA;Selenium

中图分类号:TP311.5   文献标识码:A   文章编号:2096-4706(2023)16-0104-05

Implementing Automated Novelty Search for Inspection Standards Based on Excel Programs

WANG Qun, CHEN Yanfang

(Zhushan County Public Inspection and Testing Center, Shiyan  442200, China)

Abstract: There are a large number of food inspection standards and they are updated quickly, making it difficult to carry out standard novelty search work. In order to efficiently carry out standard novelty search work, an automated program based on the Excel VBA platform has been developed. This program conducts standard novelty search work by automatically analyzing web page information. By using the method in this paper, up to 15 new standards can be found in one minute. The program has a low threshold for use and a high degree of automation, which can help inspection institutions analyze and process standard information and improve work efficiency.

Keywords: food inspection; standard novelty search; automated novelty search; VBA; Selenium

0  引  言

标准是检验检测机构衡量产品质量的重要工具,检测机构工作的准确性、公正性需要标准的支持,确保标准的时效性是检验检测工作最重要的环节之一[1]。标准查新是检验机构比较重要的工作之一,检验检测机构在使用国家,地方或者行业标准时,要认真地核实标准,必须要保证标准时现行有效的状态。

标准查新这是行业的法律法规以及认证认可标准的强制要求。CNAS-CL01《检测和校准实验室能力认可准则》7.2.1.3要求:“对于标准方法,应定期跟踪标准的制修订情况,及时采用最新版本标准”。CMA评审准则以及国家标准均要求实验室标准为最新有效版本[2,3]。并且在检验检测机构资质扩项或者更换到期的资质证书工作中,专家组所需要的重要材料之一就是机构的资质标准的查新报告。

标准查新是检验检测机构自身技术能力提升的重要手段。一些标准在更新过程中,是朝着更精密,高效和统一的方向去做具体改進。检验检测机构通过标准查新,能够迅速了解最新的检验检测方法,能更加科学严谨地开展工作。例如GB 5009.34-2022《食品安全国家标准 食品中二氧化硫的测定》标准和它的2016版对比,首先是在原先的方法基础上,不仅进了蒸馏法,还增加了比色法和离子色谱法两种检验方法。本次标准变更将食品行业中的二氧化硫测定与药典对药材的二氧化硫测定方法做了基本统一,这避免了一些药食同源的产品,测量方法不能统一的弊病。与旧方法相比,新方法全程通氮气保护,有效降低了平行实验的相对偏差,在实验精密程度方面,也有一定提升。

标准查新是检验检测机构有效开展质量工作的根本前提。通过标准查新,能够更好地把握最新的产品质量要求,避免了出具错误的检验报告而导致粮食浪费,以及一些不必要的法律纠纷。如GB 2762—2022《食品安全国家标准 食品中污染物限量》的标准中,由于稻谷在碾磨加工成大米的过程中可以减少约50%的无机砷,稻米中无机砷限量设置与旧版本相比稻谷和糙米中无机砷限量由0.2 mg/kg调整为0.35 mg/kg。

食品行业标准查新目前主要有两种手段,一种是手工查新,一种是委外机构或者部门进行查新,这两种方法都有各自优缺点。

手工查新主要是检验检测的标准管理相关人员,依次对自身资质证书涉及的标准,在互联网上的一些网站,如食品安全国家标准数据检索平台(https://sppt.cfsa.net.cn:8086/db)、食安通(http://www.eshian.

com/)、食品伙伴网(http://down.foodmate.net/standard/

index.html)等进行人工检索的方式,去获取标准有效性等一些信息。手工查新在机构规模比较小,资质证书所涵盖的标准数量比较少时,可以开展,当检验检测机构的资质证书涉及的标准数量较多时,手工查新效率低,易出错的弊端就会暴露出来,影响机构标准管理工作。

委外机构查新,其实是检验检测机构通过购买第三法服务的方式,将检验检测机构的资质标准整理好后,委托相关的机构,如检验检测机构当地市场监督管理局,进行标准查新工作,并出具查新报告。委外机构进行标准查新,尽管能够解决一定的问题,但是在查新次数较多的情况下,检验检测机构需要承担一定的时间和金钱成本,在信息对外传递过程中,甚至存在商业机密泄漏的风险。

对于食品行业检验检测机构来说,一般一季度或者半年,就需要开展一次标准查新工作。国内的食品涉及的标准较繁杂,且更新迅速,标准查新无论是采用手工查新,还是委外机构查新,一直是一个较难开展的工作。据报道,已有一种基于Python的方法,利用计算机技术去实现标准查新[4]。但是这种方法,需要标准查新网站具有对应的API(应用程序编程接口)来对接,也需要去搭建Python平台去实现代码功能,其方法实施门槛较高,难以普及。

对于食品行业检验检测机构来说,存在较大的标准自动化查新的需求。但迄今为止,少见文献报道如何利用计算机和互联网,自动开展食品行业领域的标准查新工作。

1  基于Excel的标准查新

Excel是标准管理者常用的办公软件之一,检验检测机构的资质附表,一般就是保存在Excel表格中。并且,Excel自带的VBA语言易于学习掌握,学习和使用的成本较低,用户可以容易地将日常工作转换为VBA程序代码,使工作自动化[5]。

Selenium是Jason Huggins于2004年开发的,是一种开源免费的Web应用程序自动化测试的软件[6]。Selenium Basic是Selenium在VBA平台上的开发的软件库,结合对应浏览器的WebDriver使用,可以实现以较低学习成本实现Web应用程序自动化。本文在Excel的VBA平台上,编写出自动检索并识别标准信息的Web应用程序代码,利用海量的互联网标准数据资源,来实现自动开展标准查新工作的目的。

1.1  前期准备

软件要求:电脑需要安装EXCEL、Selenium Basic软件以及Microsoft .NET Framework 3.5及以上,并将浏览器版本对应的WebDriver复制到Selenium安装目录。以上Selenium Basic和WebDriver均可以在互联网上免费获取,WebDriver版本要和用户电脑安装的浏览器,如Chrome, Ms Edge, IE浏览器等版本一致。本文以Win 10操作系统,Microsoft Excel 2019 Student and Home,Microsoft Edge浏览器版本“110.0.1587.57(正式版本)(64位)”以及对应版本的WebDriver, NET Framework 4.0为例。

标准准备:标准查新前,须对正在使用的标准进行系统梳理,将需要查询的标准进行整理,如图1所示將整理好的标准号填入表格第一列。

1.2  程序代码

在填好对应的标准代码后,右击左下角Sheet1查看代码,进入VBA代码编辑页面。如图1所示,点击工具后点击引用按钮,将Selenium Type Library勾选并确认,再点击插入按钮,插入模块1。为了便于使用和修改程序,本文代码单引号后附带的有对应的注释。如图2所示,双击左侧工程栏模块1,在其内输入以下代码:

Sub BZCX()

Dim str, str0, str1, str2 As String

Dim i, j, k As Integer

Application.ScreenUpdating = False

str0 = "http://down.foodmate.net/standard/search.php?corpstandard=2&fields=0&kw=" '将食品伙伴网搜索栏地址赋值给str0

Dim driver As New EdgeDriver

For i = 1 To ActiveSheet.[A65536].End(xlUp).Row '遍历第一列所有的标准号

str = Cells(i, 1)

str = str0 & str '将标准号和食品伙伴网搜索栏网址通过连字符连接,为网页检索做准备

driver.Get str '打开对应的检索网页

driver.Wait "2500" '设置检索间隔,防止时间耗尽

On Error Resume Next

str1 = driver.FindElementByXPath("/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a/img").Attribute("src") '将打开网页的特征元素的文件名赋值给str1

str2 = driver.FindElementByXPath("/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a").Text '将打开网页的特征文本内容赋值给str2

If str1 = "http://down.foodmate.net/skin/default/images/xxyx.gif" Then '进行判断看是否为现行有效,然后将信息赋值给对应的第二列和第三列单元格

Cells(i, 2) = "现行有效"

Else

Cells(i, 2) = "需要确认"

End If

Cells(i, 3) = str2

Next

End Sub

1.3  查新数据分析和保存

在完成上述操作后,按F5运行程序即可开始标准自动查新。程序运行会在Excel界面上会出现一个浏览器界面,该界面即计算机自动检索页面。程序根据查新标准的数量,需要一定时间等待程序完成查新工作。

完成查新后,查新结果如图2所示,其第一列是预先整理填好的待查新的标准号,表格的第二列是查新结果,如果标准不是现行有效,则会右侧标注“需要确认”。标准管理员可以直接筛选出需要确认的标准,并保存表格结果,提交给机构的技术负责人。技术负责人根据结果,将需要确认的标准进行查看,根据标准变化情况,再开展标准变更工作。

程序也会将标准的全部名称抓取放在表格第三列,方便标准管理员管理标准,可以在后续的资质项目扩增或者资质证书更换的工作中使用。

1.4  程序原理分析

本文涉及的程序,其原理是VBA代码自动遍历标准号,在食品伙伴网进行检索,并通过识别网页的特征标识,来判断该标准是否为现行有效。程序的自动识别和判定,是建立在对网页信息的前期研究基础上的。

以Edge浏览器为例,如图3所示在程序中的网页中GB/T 18810—2002标准进行检索,利用浏览器的开发人员工具,选择搜索结果标准名称最左的“现行有效”这个元素进行检查,发现其对应的网页代码:

==$0”。同样的操作如图4所示,对NY/T 832—2004这个标准进行检索,对同样位置的“即将废止”元素检

查,其对应的网页代码是“==$0”。

在网页图片元素中,标签的src属性的值是图像文件的URL,也就是引用该图像的文件的绝对路径或相对路径。

对比两种标准对应结果的元素所对应的img src属性,可以发现其与标准有效性有一定规律,现行有效的标准img src路径为:“http://down.foodmate.net/skin/default/images/xxyx.gif”,即将废止或者其他状态的标准对应位置的img src文件名不是该路径。可以将src路径里的网站复制到浏览器进行查看,可以看到其为写有“现行有效”四个字的图片。因此可以通过分析对应位置元素的img src路径,来对标准的有效性进行判断。

在网页中,XPath是一种表达式语言。它使用路径表达式来选取XML文档中的节点或节点集。通过它的定位作用,可以获取网页中的指定元素和指定节点的值,提取到我们想要的结果。

为了实现该目的,本文通过浏览器开发人员工具,获取并复制写有“现行有效”四个字的图片元素完整的XPath为:

“/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a/img”,然后通过driver.FindElementByXPath语句,对指定XPath的元素的srcs属性进行抓取,识别和判断。完整代码为:

“driver.FindElementByXPath("/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a/img").Attribute("src") ”。

同样的原理,本文也分析了查询结果的“标准名称”一列的元素,其对应代码为" GB/T18810-2002糙米",代码中“ ”在超文本标记语言中是指输出一个不换行空格。标准名称一列元素均为Text纯文本字段,内容即是标准的全程。可以利用程序对文本进行抓取并赋值到对应单元格,获取标准全称。利用浏览器开发人员工具,获取其完整Xpath为"/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a",具体实现,也是通过和上述一致的driver.FindElementByXPath语句来实现。完整代码为“driver.FindElementByXPath("/html/body/div[6]/div[2]/div[2]/div[2]/ul/div[3]/span[1]/a").Text”。

事实上,不仅仅是标准的有效性的信息以及标准号码所对应的全名,对于标准的发布日期和实施日期等信息,也可以采取类似的方法,获取对应元素的Xpath,利用driver.FindElementByXPath语句,返回对应元素的各种属性的值,通过程序自动化完成信息的识别,判断和保存。

为了防止标准查新网站的资源耗尽,本程序设置了浏览器的查询间隔,在实际使用过程中,不建议为了减少查新时间,缩短本文所述程序的设定值。由于此原因,本文所述的方法,理论上1分钟最高可以实现15个标准的查新工作。也就是说,本例实际完成150个标准的查新工作,仅需要10余分钟就可以完成。

2  结  论

本文对食品行业检验检测机构标准查新工作,程序烦琐,效率低下的问题,开发了一种采用Excel实现机构标准的自动化查新工作的方法。本文所述方法,使用门槛较低,程序自动化程度较高,能够及时准确获取标准的有效信息,利于操作者对信息进行分析和加工,提高标准查新的工作效率。可以很好地填补食品行业检验检测机构,利用计算机和互联网实现标准自动查新的这一空白。

不仅是标准查新工作,对于食品检验检测行业从业人员来说,除了基本的检验检测业务之外,还存在大量的如管理体系运行、实验室药品管理、报告管理等繁杂琐碎的工作。很多工作人工开展,不仅容易出错,还需要层层审核,效率低下,如何高效准确开展工作,是检验检测机构亟须解决的问题之一。检验检测机构利用好计算机和互联网来处理这些工作,提高工作效率和质量,将是一种较好的解决办法。

参考文献:

[1] 周建团.标准对检验检测机构的重要性 [J].发展,2017(6):61-62.

[2] 周潔,华添翼,朱洁,等.浅谈检验检测机构方法变更中的方法验证 [J].中国检验检测,2020,28(6):89-90+88.

[3] 陈薇,桑彤,陆敏仪.标准查新和标准确认体系的建立对检验/检测机构的重要性[J].中国药事,2015,29(4):369-373.

[4] 李骏,张鸽,纪海婷,等.Python在标准查新中的应用 [J].科技创新与应用,2020(12):184-186.

[5] 杜菁,武文芳,周震.数据库技术与应用新概念教程:第2版 [M].北京:中国铁道出版社,2016.

[6] 王旭丽.基于Selenium的自动化程序设计与实现 [J].现代信息科技,2022,6(22):12-15+21.

作者简介:王群(1992—),男,汉族,湖北竹山人,硕士研究生,研究方向:食品安全;通讯作者:陈艳芳(1980—),女,汉族,湖北竹山人,工程师,本科,研究方向:食品安全。

猜你喜欢
食品检验
探讨如何提高食品质量检验结果的准确性和有效性
提高食品检验结果准确性的控制措施
提升食品检验结果的准确性和有效性的若干研究
生物检测技术在食品检验中的应用探讨
关于影响食品检验准确性因素的分析
确保食品微生物检测的质量保证的几点建议