基于Python语言的WOS引文检索软件设计与实现
作者:***
来源:《新世纪图书馆》2020年第11期
摘 要 为提高查收查引的工作效率与工作质量,论文设计了WOS引文检索自动化程序,利用Python语言,结合WOS API 接口和Selenium开源包,设计并实现WOS引文检索软件。该软件完全替代人工操作,实现全过程的自动化处理,有效提高部门整体的工作效率。
关键词 查收查引 引文检索 Python WOS API Selenium
分类号 G254.97;G252.62
DOI 10.16810/jki.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 pro
gram realizes the whole process of automatic processing, which completely replacing manual processing part, and effectively improves the efficiency of the department’s 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所示。
python正则表达式爬虫 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次的情景下,本軟件模拟人工下载步骤,计算循环下载的次数和循环下载的记录区间,通过不断循环填写下载的记录区间,实现引文的全部下载。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论