摘 要 为提高查收查引的工作效率与工作质量,论文设计了WOS引文检索自动化程序,利用Python语言,结合WOS API 接口和Selenium开源包,设计并实现WOS引文检索软件。该软件完全替代人工操作,实现全过程的自动化处理,有效提高部门整体的工作效率。
关键词 查收查引 引文检索 Python WOS API Selenium
分类号G254.97;G252.62
DOI 10.16810/j.cnki.1672-514X.2020.11.010
Design and Practice of WOS Cited Reference Retrieve Programmer With Python
Yu Chenlin
Abstract In order to improve the efficiency and quality of cited reference retrieve service, this paper designs an automatic program for WOS cited reference retrieval. Using Python language, this paper employs the WOS API interface and Selenium open source package, designs the automatic retrieval system of WOS cited reference. This program realizes the whole process of automatic processing, which completely replacing manual processing part, and effectively improves the efficiency of the departments workflow.
Keywords Cited reference retrieval service. Cited reference retrieval. Python. WOS. API. Selenium.
0 引言
隨着国家科研管理事业的不断发展,科研人员对于学术研究成果的查新需求迅猛增加,导致各高校图书馆的查收查引服务工作也不断增加,浙江大学图书馆查收查引年均服务人次达五六千以上[1],深圳大学城图书馆查收查引年均服务人次达1400以上[2],笔者所在单位查收查引年均服务人次达两千以上。随着查收查引需求的迅速增长,以人工操作为主的查收查引工作模式已经不能满足现有服务需求。如何改进与优化查收查引服务成为图书馆学界和业界的关注重点,包括检索技巧的改进[3]、半自动化的报告格式生成和文献数量统计[4]、查收查引系统的研发[5-6]、引文自动下载实现[2,7-8]等。以上研究促进查收查引服务从最初的手工处理到现在的半自动化。
目前,各高校图书馆已有较为成熟的查收查引的服务体系,但其工作效率有待提高。以笔者所在单位为例,上海大学图书馆情报部虽已研发查收查引报告的半自动化软件,实现作者署名统计、总引与他引计算、论文的各数据库收录情况统计、自动生成规范化报告等,但需要人工下载WOS引文数据。引文人工下载这部分工作,重复性高、效率低下,需要消耗大量时间与精力。因此,本研究基于上海大学图书馆查收查引服务的需求,利用Python语言实现WOS引文检索软件,实现WOS引文自动下载。该软件替代馆员重复机械的手工处理部分,解放了馆员的劳动力,促使馆员进行更多创造性工作,提升了整个部门的工作效率。
1 现有查引检索软件的不足及改进技术
当前已有的查收查引系统均设计了引文检索功能,如中科院查收查引系统的引用检索功能[5]、CALIS论文收录及引用检索系统的引用检索[6]。除此之外,各高校图书馆馆员利用爬虫技术来设计与实现引文自动检索软件,以自动化的方式从网络上下载、解析和组织数据[9]。涂颖哲通过POST方法获取网页内容,利用正则表达式提取网页中特定区域的内容[7],蔺梅芳基于Python语言利用urllib2以及urllib标准库,对目标URL发出GET请求,解析返回内容,来实现引文自动下载[8],高营利用WOS的API Expand接口进行查询,稳定、快速获取论文的引用详情[2],陈月从基于WOS的AMR和API Lite接口定时自动批量下载本机构的论文及其引文[10]。其中,涂颖哲和蔺梅芳是通过通信协议发送请求,解析获得请求返回结果,从而得到引文信息,不属于模拟浏览器操作,容易受网页结构变化和网站的反爬虫策略的影响,导致原有程序不能使用。高营和陈月从利用的是WOS的API接口,一是读取速度很快,二是程序较为稳定,不受网页结构变化和网站反爬虫影响。
利用WOS API也存在一些局限。WOS平台提供的API接口比较[11]如表1所示。从表1可知,AMR偏重文章的被引频次,API Lite偏重文章的题录信息的查询,API Expanded偏重文章的全记录信息的查询,包括作者地址、通讯作者及其地址等。API Expanded类似网页检索的全记录,返回文章的全部信息,是查收查引服务最佳选择,但需要付费使用。通过AMR和APILite方法,均无法获取引文文章的作者地址,很难区别文章的自引和他引,无法满足科研人员对于他引次数统计的需求。
2 软件设计思路
软件设计的目的是实现WOS引文自动下载工作。本单位未购买WOS API Expanded接口,而AMR和API Lite接口不能满足需求,因此,笔者利用Python的免费、开源的Selenium数据包,设计WOS引文检索软件,模拟人工下载操作,实现WOS引文的全记录内容、纯文本格式的自动下载。人工下载引文流程可简化为两个部分,第一部分是引文页面链接的获取,第二部分是引文数据的下载保存。首先,在WOS核心合集数据库内,以被检索论文的入藏号进行检索;其次,获得被检索论文在WOS核心合集的链接;然后,判断引文次数,若引用次数等于0,则返回查询步骤,否则,进入下一步;最后,到达该论文的引文页面,以全记录内容、纯文本格式导出保存。具体流程如图1所示。
3 软件模块分析与实现
3.1 引文链接队的获取
AMR是WOS数据库的API接口,通过API接口来处理请求并返回指定的数据。AMR接口利用入藏号、题目、作者和出版物等为检索条件,查询所需的指定数据,如被引频次、到WOS数据库全纪录超链接、到WOS的施引文献超链接、到WOS的相关记录超链接、DOI号、PMID号、入藏号[12]。本研究利用WOS数据库的AMR接口,直接、批量获取所有被检索论文的引文页面链接,节省了检索文献达到引文页面的时间。AMR查询的返回的指定数据是规范格式的XML数据,见图2。若该论文的引用次数为0,则该论文的查询结果内,不会出现引用次数和引用页面链接的字段。
虽然AMR仅能进行单次检索,但是通过组建多个AMR检索式,可以实现检索文献清单的批量检索。本软件利用正则表达式解析检索论文清单中的入藏号,获取检索论文的入藏号后,以入藏号为检索条件,通过AMR接口发送请求,借助Beautiful Soup库,解析返回的规范格式的XML数据,可直接得到检索文献清单中,所有引文次数大于0的文献的引文链接。本软件的引文链接队的获取功能,可在几秒内,返回需要下载的引文页面链接队,无需引文次数查询—引文链接获取的步骤,极大减少引文页面获取部分的用时。
3.2 引文数据下载保存
为了便于后续程序对于他引与自引的区别与计算,本研究需要以引文的全记录内容、纯文本格式保存。因此,本研究采用Python语言中的开源数据包Selenium来实现引文数据下载保存。
Selenium是一个用于Web应用程序测试的工具,可驱动浏览器执行特定操作[13]。Selenium具有元素定位、网页延时的显示等待和隐示等待功能[14],可以实现页面的点击、下滑、资源加载与渲染等。Selenium主要用于自动化测试,支持浏览器驱动,可以控制浏览器的对象元素。因此,Selenium经常被用于网络爬虫的人工模拟自动化步骤。常见的反爬虫措施,有修改请求头、修改爬虫时间间隔、使用代理等[15],而Selenium驱动浏览器执行操作,直接避免基于User-Agent的反爬虫技术,进行JavaScript交互完成爬虫任务。
本研究将使用Chrome浏览器、Selenium和Python语言,构建引文自动下载的结构,Chrome浏览器负责渲染解析JavaScript,Selenium负责驱动浏览器,Python进行程序操作与处理。引文数据下载保存的流程为:①根据AMR返回的引文页面链接队;②利用Selenium驱动Chrome浏览器,打开引文页面;③应用Python语言点击保存选项,选择保存内容与格式,最后点击保存,实现引文自动下载。在引文频次大于500次的情景下,本软件模拟人工下载步骤,计算循环下载的次数和循环下载的记录区间,通过不断循环填写下载的记录区间,实现引文的全部下载。
本软件的引文数据下载保存功能包括了下载环境检查、引文保存选项填写、引文重命名以及转移、引文下载情况检查等步骤。图3为软件部分功能代码展示。
4 软件整体流程与运行步骤
软件主要按照两个部分展开,见图4。第一部分,引文链接队的获取,软件利用正则式表达自动提取检索清单论文的入藏号,通过AMR接口检索,得到检索清单论文中的引文次数大于0的论文的引文链接队。第二部分,引文数据下载保存,对获取的引文链接队,逐个使用Selenium进行引文的全记录内容和纯文本格式的保存下载。
为方便其他馆员的使用,本研究利用pyinstaller将代码打包成独立的exe文件,使得软件的使用不受电脑环境的限制。该软件操作简便,首先在输入文件夹内放入被检索文献的全记录的纯文本文件作为输入信息,其次点击运行exe文件,然后等待程序运行完毕,最后在结果文件内,查看下载情况核对表和引文文件。
5 效果分析
本软件具有稳定性好、操作简便、过程可视化、扩展性和应用性较好等特点。本软件从首次应用到现在已经有两年的时间,可证实软件的稳定性。本软件操作简便,无需技术背景,馆员只需将软件拷贝到操作电脑内,点击exe即可运行WOS引文检索软件。本软件运行过程可视化,在运行程序的界面上,会显示下载的进度,也可看到软件操作Chrome浏览器自动进行加载、点击与下载等。本软件拥有良好的扩展性,为了满足本单位需求,本软件将下载选项设置为全记录内容、纯文本格式,下载选项可以根据自身需求进行重新设置。本软件有较强的实用性,情报部面临大量题录数据下载任务,利用本软件大于500条引文的循环下载功能,可将该功能扩改为所需题录数据的批量数据自动下载。
本软件仍存在一定的局限性,需要定期维护。本软件从首次应用到现在,WOS网站经过升级,页面结构变化,导致原有软件不能使用,需要随之修改软件内的部分语句,维护软件的长期使用。从表2可发现,与其他软件相比,本研究的引文下载的用时方面不占优势,但与人工下载用时相比,各软件的下载用时均小于人工下载用时。仅通過表2的用时很难客观比较各软件的下载速度。各软件的下载用时受很多因素的影响,比如下载任务的论文数量、网络速度、测试电脑的CPU等,需要将各软件放置在同等客观条件下进行多次测试。本研究仅以理论角度来分析软件用时。API是不同程序之间进行交互的接口,实现约定好对接的标准和规则,通过API查询引文,就可直接获取所需数据,API方法下载更为快捷与稳定。本软件仅采用API查询获取引文链接队,通过浏览器跟服务器之间的一系列交互,才能获取引文数据,因此,本软件在下载速度上不占优势。
总之,本软件主要是满足上海大学图书馆情报部的查收查引系统的需求,实现人工下载的全过程,减少馆员重复性、机械性的操作步骤,提高查收查引的工作效率与工作质量,为馆员节约大量的时间与精力,从而进行更多创造性工作。
参考文献:
朱玉奴.查收查引用户需求及高質量服务策略研究[J].情报探索,2019(4):65-70.
高营.基于WOS API的论文自动查收查引程序设计与实现[J].图书馆研究与工作,2019(4):82-85.
宋成方.查收查引服务质量提高路径及其延伸服务探析[J].山东图书馆学刊,2012(5):47-50.
樊亚芳,陈锴.利用Excel和EndNote Web提高论文查收查引工作效率[J].图书馆杂志,2013,32(1):32-34,60.
王学勤,郝丹,郑菲,等.“查收查引报告自动生成系统”应用实践研究[J].图书情报工作,2014,(16):131-137.
马芳珍,李峰,季梵,等.对CALIS查收查引系统的测试和应用效果评价[J].大学图书馆学报,2016,34(2):97-102.
涂颖哲.论文查收查引工具软件的设计与应用实践[J].农业图书情报学刊,2015,27(8):34-38.
蔺梅芳,翟燕,张宇娥.应用Python语言的引文检索自动化软件设计与实践[J].四川图书馆学报,2016(3):42-45.
希普·万登·布鲁克,巴特·巴森斯.数据科学实战之网络爬取 Python实践和示例[M].北京:机械工业出版社.2019:2.
陈月从,方燕虹,武桂芹,等.基于云平台的论文自动查收查引移动应用系统[J].情报探索,2016(03):66-72.
Web of Science. What sets Web of Science data apart[EB/OL]. (2020-04-01) [2020-07-25].https://clarivate.com/webofsciencegroup/solutions/xml-and-apis/.Web of Science. Links artile match retrieval service[EB/OL]. (2020-04-01) [2020-07-25].http://help.incites.clarivate.com/LAMRService/WebServiceOperationsGroup/requestAPIWoS.html/.
韦世东.Python 3反爬虫原理与绕过实战[M].北京:人民邮电出版社.2020:15.
樊涛,赵征,刘敏娟.基于Selenium的网络爬虫分析与实现[J].电脑编程技巧与维护,2019(9):155-156,170.
唐松, 陈智铨. Python 网络爬虫从入门到实践[M] .北京:机械工业出版社, 2017: 132-140.
虞晨琳 上海大学图书馆助理馆员。 上海,200444。
(收稿日期:2020-07-26 编校:陈安琪,左静远)