之前这篇文章(路人乙小明:用entrez eutilities来查pubmed文献)提过如何利用entrez eutilities查找文献。当时在最后面获取论文摘要和题录的部分直接用了text的模式。最近觉得用xml模式能获得更加细致的数据。比如我如果只想获得题目,杂志,一作,doi这几个信息,如果直接用text获取摘要,然后再用regex就比较容易出错,但是xml就不会有这样的问题(大概……)
况且用python重新写一下那段程序也是好的。
导入各种包
import requests
import os
import xml.etree.ElementTree as ET
import pyperclip
import argparse
import re
requests需要自己安装,是很方便的一个获取网络信息的工具。
os当时导进来主要是为了删除写入的临时文件(os.remove()
),调试程序的时候总不能每次都从entrez读数据吧,一来比较慢,二来万一整天发请求会被封的。
xml.etree.ElementTree是python自带的xml解析工具
pyperclip是读取剪切板的工具
argparse是加入命令行参数的工具
re就是正则的包
参数和其他信息准备
reLink = re.compile(r'https://www.ncbi.nlm.nih.gov/pubmed/(d+)')
parser = argparse.ArgumentParser(
"-i pmid -l pubmed link")
parser.add_argument('-i')
parser.add_argument('-l')
parser.add_argument('-verbose')
parser.add_argument('-paste')
args =