我想通過python查詢pubmed。我找到了一個不錯的生物學相關的庫來做到這一點: http://biopython.org/DIST/docs/tutorial/Tutorial.html帶有示例biopython代碼查詢pubmed的HTTPError
我發現一些示例代碼在這裏: http://biopython.org/DIST/docs/tutorial/Tutorial.html#htoc116
from Bio import Entrez
Entrez.email = "[email protected]"
handle = Entrez.egquery(term="orchid")
record = Entrez.read(handle)
for row in record["eGQueryResult"]:
if row["DbName"]=="pubmed":
print row["Count"]
當我改變了電子郵件,運行這段代碼,我得到了以下錯誤:
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
導致問題的原因並不多。我不知道它試圖訪問哪個網址。
當我搜索「pubmed entrez urllib2.HTTPError:HTTP錯誤404:未找到」時,我得到8個結果,其中沒有任何關聯(除此線程外)。
你可以找到它試圖訪問哪些網址通過捕捉異常。 'try:handle = Entrez.egquery(term =「orchid」)''Exception as e:pass',然後'print e.geturl()'。我得到''http://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi?term = orchid&tool = biopython&email = A.N.Other%40example.com''。 – DSM
謝謝。我正要這樣做。我收到以下網址:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi?term=orchid&tool=biopython&email=MYEMAIL。這是否表明pub客服務器/服務已關閉? – anonymous
從異常中獲取URL的好技巧:) – peterjc