最近太忙了,抽空写了个程序,可以批量从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。 就这样。