This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Pubmed Free Full Text Article

Hi, I have to download a large set of articles from pubmed.

I first make an esearch and then for each PMID i make an efetch.

The problem is that i have to discern what articles are free full text and what are not. I know this could be done by inserting a filter in the esearch, but i have to do it after the esearch and it seems that the efetch response doesn't have any information about it, so is there some way to do this?

pubmed java

2 answers

try to look for a pubmed central PMC identifier in your pubmed record:

eg. http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=21379989&retmode=xml

        <ArticleId IdType="pubmed">21379989</ArticleId>
        <ArticleId IdType="pmc">PMC2489041</ArticleId>
    </ArticleIdList>
</PubmedData>

but beware, PMC detects the robots trying to download a large number of documents.

thanks, but the problem is that not all free articles are on pubmed central

So far as I am aware, a PMC ID is the only indication in PubMed XML that an article is freely-available. If other articles are free but not in PMC - then you cannot discover that from PubMed XML.

But pubmed can recognize them. So there must be a way to do it. Is it possible that it works with the journal?

thanks a lot! This is surely the only way to do it

can i ask you where did you find these filters?

I can't understand which is the difference between 2012/01/01[crdt]:2012/12/31[crdt] AND ("free not pmc"[Filter] OR "free only pmc"[Filter]) and 2012/01/01[crdt]:2012/12/31[crdt] AND free full text[sb] The articles count is different

Log in to answer this question.