私は、pubmedの用語を検索しており、pubmed centralのそれぞれのidを検索しています。これは私のコードですElink関数がHTTP 414の問題を返します
Entrez.email = "[email protected]"
batch_size = 10000
def idconv(idkeys):
handle = Entrez.elink(db='pmc', dbfrom='pubmed', id=idkeys)
return [each['LinkSetDb'][0]['Link'][0]['Id'] for each in Entrez.read(handle)]
def search(Term):
handle = Entrez.esearch(db='pubmed', term=Term, retmax=100000000)
record = Entrez.read(handle)
idlist = record["IdList"]
return idlist
mylist = search('"bacterial infections and mycoses"[MeSH Terms] AND pmc cc license[filter]AND ("review"[Publication Type]) AND "journal article"[Publication Type] NOT "letter"[Publication Type] NOT "comment"[Publication Type]')
print(len(idconv(mylist)))
私はいつもエラーが発生します。
HTTP Error 414: Request-URI Too Large
どうすればこの問題を解決できますか?
できません。それはあなたの手ではありません:検索用語(具体的には、あなたが送信している)は、Webサーバーに応じて大規模です。はるかに小さい検索語を試し、結果を後でフィルタリングすることができます。 –
これまでにこの問題に遭遇した人のための[関連検索結果](http://comments.gmane.org/gmane.comp.python.bio.general/8696)です。 –