Ich muss PubMed Artikel ernten automatisieren. Ich fand nur Beispiele zum Herunterladen PubMed Artikel nach Begriff Abfrage und Herunterladen eines PubMed Artikels von pmid. (EIN ARTIKEL) Aber was ich denke ist, eine Liste der PubMed IDs nach Datum (von-bis) oder alle von ihnen, wie in der OAI herunterladen.Laden Sie eine Liste aller Pubmed IDs nach Datum herunter (von-bis)
2
A
Antwort
2
Sie können BioPython für solche Zwecke verwenden. Das folgende Code-Snippet gibt Ihnen einen Link für alle PubMed-Artikel in einem bestimmten Zeitraum. PMC-Artikel können direkt heruntergeladen werden, für andere Artikel wird der DOI bereitgestellt, aber der Speicherort des PDFs ist für den Herausgeber spezifisch und kann nicht für alle Artikel vorhergesagt werden.
def article_links(start_date, end_date = '3000'):
"""
start_date, end_date = 'YYYY/MM/DD'
returns a list of PubMedCentral links and a 2nd list of DOI links
"""
from Bio import Entrez
Entrez.email = "[email protected]"
#get all articles in certain date range, in this case 5 articles which will be published in the future
handle = Entrez.esearch(db="pubmed", term='("%s"[Date - Publication] : "%s"[Date - Publication]) ' %(start_date, end_date))
records = Entrez.read(handle)
#get a list of Pubmed IDs for all articles
idlist = ','.join(records['IdList'])
handle = Entrez.efetch("pubmed", id=idlist, retmode="xml")
records = Entrez.parse(handle)
pmc_articles = []
doi = []
for record in records:
#get all PMC articles
if record.get('MedlineCitation'):
if record['MedlineCitation'].get('OtherID'):
for other_id in record['MedlineCitation']['OtherID']:
if other_id.title().startswith('Pmc'):
pmc_articles.append('http://www.ncbi.nlm.nih.gov/pmc/articles/%s/pdf/' % (other_id.title().upper()))
#get all DOIs
if record.get('PubmedData'):
if record['PubmedData'].get('ArticleIdList'):
for other_id in record['PubmedData']['ArticleIdList']:
if 'doi' in other_id.attributes.values():
doi.append('http://dx.doi.org/' + other_id.title())
return pmc_articles, doi
if __name__ == '__main__':
print (article_links('2016/12/20'))
Ist Ihr Problem gelöst oder noch offen? –