已知PMID,得到参考文献的格式

最近太忙了,抽空写了个程序,可以批量从pmid得到参考文献。

pmidlist = open('pmid.txt', 'r')
output = open('results.txt', 'w')

def pmid2ref(pmid):
	import requests
	from bs4 import BeautifulSoup
	html = requests.get('https://www.ncbi.nlm.nih.gov/pubmed/' + str(pmid) + '/')
	soup = BeautifulSoup(html.text, 'lxml')
	title = soup.title.string.split('- PubMed')[0]
	info = soup.select('meta')
	for meta in info:
		if 'author' in str(meta):
			author = meta['content']
		if 'description' in str(meta):
			publish = meta['content']
			if '[' in str(publish):
				publish = publish.split('[')[0]

	results = title + ' ' + author + ' ' + publish
	return results
	
for pmid in pmidlist:
	if '\n' in pmid:
		pmid = pmid.split('\n')[0]
	print pmid + ' done'
	results = pmid2ref(pmid).encode('utf8')
	output.write(results + '\n')

pmidlist.close()
output.close()
print 'task done'

稍微解释一下,核心部分就是构建的那个函数。 从一个pmid得到参考文献就直接

pmid2ref(pmid)

就可以了。

不过弄成批量,就写了个循环。 需要一个写了pmid的txt,一行一个。pmid.txt。

然后我指定的输出文件是results.txt。 就这样。