Question

I want to query pubmed through python. I found a nice biology related library to do this: http://biopython.org/DIST/docs/tutorial/Tutorial.html

I found some example code here: http://biopython.org/DIST/docs/tutorial/Tutorial.html#htoc116

from Bio import Entrez
Entrez.email = "A.N.Other@example.com"     
handle = Entrez.egquery(term="orchid")
record = Entrez.read(handle)
for row in record["eGQueryResult"]:
  if row["DbName"]=="pubmed":
    print row["Count"]

When I change the email and run this code I get the following error:

Traceback (most recent call last):
  File "pubmed.py", line 15, in <module>
    handle = Entrez.egquery(term=my_query)
  File "/usr/lib/pymodules/python2.7/Bio/Entrez/__init__.py", line 299, in egquery
    return _open(cgi, variables)
  File "/usr/lib/pymodules/python2.7/Bio/Entrez/__init__.py", line 442, in _open
    raise exception
urllib2.HTTPError: HTTP Error 404: Not Found

There is not much of a lead to the source of the problem. I don't know what url it is trying to access. When I search "pubmed entrez urllib2.HTTPError: HTTP Error 404: Not Found", I get 8 results, none of which are related (aside from this thread).

Was it helpful?

Solution

The example works for me. It looks like it was a temporary NCBI issue, although the "Error 404" is quite unusual and not typical of the network problems I have seen with Entrez. In general with any network resource, give it a few hours or a day before worrying that something has broken.

There is also an Entrez Utilities announcement mailing list you may wish to subscribe to, although if there was a planned service outage recently it was not mentioned here: http://www.ncbi.nlm.nih.gov/mailman/listinfo/utilities-announce

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top