thanks, but the problem is that not all free articles are on pubmed central
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?
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.
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?
Second answer (lightened by Pubmed Filters ) .
use a pubmed [Filter]
thanks a lot! This is surely the only way to do it
can i ask you where did you find these filters?
go to pubmed advanced http://www.ncbi.nlm.nih.gov/pubmed/advanced . In Builder , select "Filter" , type 'free' and "Show index list'
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.