我想从 Pubmed 数据库的搜索结果中提取 Mesh 术语。我正在使用 php。
我制作了一个有效的脚本,但它非常慢。它打开每篇文章,解析 XML 并检索网格术语。“fopen”功能是缓慢的部分。
$url= $base."efetch.fcgi?db=$db&id=$id&rettype=abstract";
$opts = array(
'http' => array(
'method' => "GET",
'header' => "User-Agent:MyAgent/1.0\r\n"
)
);
$context = stream_context_create($opts);
$fp = fopen($url,'r',false,$context);
$output=stream_get_contents($fp);
该脚本为每篇文章打开一个大的 xml 文件: http ://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=19616537&retmode=xml
有没有办法只检索网格术语,或者至少检索 xml 的一小部分?或者只加载文件的一半?
谢谢
更新:我得到了一些改进。使用 efetchretmode=text
并将rettype=medline
一个文件的下载量从 15 kb 减少到 4kb。我还捆绑了所有下载以减少请求量。
现在加载 500 个结果需要 4.8 秒。
我还是想快点。
有没有人有一些提示?