3

我正在尝试对 Pubmed 的 Eutils 服务运行一些查询。如果我在网站上运行它们,我会返回一定数量的记录,在本例中为 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

您已经解决了这个问题(Entrez 喜欢明确的双引号循环组合搜索词),但目前生成的 URL 没有通过 API 公开。最简单的技巧是编辑文件以在函数Bio/Entrez/__init__.py内添加打印语句。_open

更新:Biopython 的最新版本现在将 URL 保存为返回句柄的属性,即在此示例中尝试执行print(handle.url)

于 2013-05-09T17:06:04.707 回答
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 回答