Как извлечь полный список названий статей и рефератов PMC с помощью Bio.Entrez?

#python #web-scraping #pubmed

#python #веб-очистка #pubmed

Вопрос:

Я пытаюсь загрузить полные данные заголовка / реферата из PMC / Pubmed. Это извечный вопрос, но ни один из ответов в stackoverflow, похоже, не отвечает на него.

Общий подход заключается в использовании пакета Entrez, но опять же, вам нужно указать условия поиска. Также существует ограничение на количество запросов, которые вы можете отправлять с течением времени.

 from Bio import Entrez
Entrez.email = "A.N.Other@example.com"  
handle = Entrez.esearch(db="pubmed", term="orchid", retmax=463)
record = Entrez.read(handle)
handle.close()
idlist = record["IdList"]
handle = Entrez.efetch(db="pubmed", id=idlist, rettype="medline", retmode="text")
records = Medline.parse(handle)

for record in records:
     print("title:", record.get("TI", "?"))
     print("authors:", record.get("AU", "?"))
     print("source:", record.get("SO", "?"))
     print("")
  

Могу ли я в любом случае загрузить всю статью данные реферата из PMC, используя Python или напрямую из любых других источников?

Ответ №1:

Один из способов решения этой проблемы — использовать метод esearch с термином, который позволяет искать статьи с начала pubmed, и начинать приводить статьи итеративным способом, изменяя параметр retstart.

 batch_size = 20
start = 0

while start<1000:
 handle = Entrez.esearch(db="pubmed",term = "2015/3/1:2022/4/30[Publication Date]",retmode="xml",retstart = start, retmax = batch_size)
 summaries = Entrez.read(handle)
 handle.close()
 start = start   batch_size