3

Pubmed の Eutils サービスに対していくつかのクエリを実行しようとしています。Web サイトでそれらを実行すると、特定の数のレコードが返されます。この場合は 13126 ( pubmed へのリンク)。

しばらく前に、Python スクリプトをまとめてクエリを作成し、ほぼ同じことを実行しました。結果の URL は同じ数のヒットを返します ( Eutils の結果へのリンク)。

もちろん、正式なプログラミングのバックグラウンドがなく、少しぎこちなかったので、Biopython を使用して同じことをしようとしています。次のコードでも同じことを行うべきだと思いますが、23303 というより多くのヒット数が返されます。

from Bio import Entrez
Entrez.email = "A.N.Other@example.com"
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
record = Entrez.read(handle)
print(record["Count"])

URL の生成方法が微妙なところにあると確信していますが、Biopython によってどの URL が生成されているかを確認する方法がわかりません。誰かが私にいくつかの指針を与えることができますか?

ありがとう!

編集:

検索用語を二重引用符で囲むようにコードを変更することで、元のヒット数を取り戻すことができるため、URL の生成方法に関係があります。

handle = Entrez.esearch(db='pubmed', term='"stem+cell"[ALL]', datetype='pdat', mindate='2012', maxdate='2012')

より複雑な検索を行いたいときに検索語をどのように構成する必要があるかを理解するのに役立つので、Biopython によって生成されている URL を知りたいと思っています。

4

2 に答える 2

1
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
print(handle.url)
于 2015-11-22T08:46:44.983 に答える
1

これは既に解決済みですが (Entrez は明示的な二重引用符で囲まれた検索用語を好んでいます)、現在、生成された URL は API 経由で公開されていません。最も簡単な方法は、ファイルを編集して関数Bio/Entrez/__init__.py内に print ステートメントを追加することです。_open

更新: Biopython の最近のバージョンでは、返されたハンドルの属性として URL が保存されるようになりました。つまり、この例では、print(handle.url)

于 2013-05-09T17:06:04.707 に答える