


摘 要 為提高查收查引的工作效率與工作質量,論文設計了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 編校:陳安琪,左靜遠)