之前用的常规爬虫思路(import requests,from bs4 import BeautifulSoup)来下载文章题目,作者,来源等信息时, 偶尔会出现各种问题,有那个调试的时间,就自己根据biopython快速写了一个脚本 ,简单好用。
# !bin/python
# encoding:utf-8
from Bio import Entrez
from Bio import Medline
Entrez.email = 'xxxx@qq.com'
ref = open('ref.txt','w+')
def downref(pmid):
handle = Entrez.efetch(db="pubmed" , id=pmid , rettype="medline" , retmode="text")
records = Medline.parse(handle)
records = list(records) # records 是一个迭代器,所以只能访问这些records一次。如果想保存这些records,需要把他们转成列表。
for record in records:
print "title:" , record.get("TI" , "?")
if len(record.get("AU" , "?"))>3:
author = ','.join(record.get("AU" , "?")[0:3]) #如果名字很多时,作者名字取前三个
print