ソース: http://www.ncbi.nlm.nih.gov/books/NBK25499/
指定したURLにhttpでアクセスするだけで、簡単にデータが取ってこられます。
たとえばPubMedで「cancer」について検索したい場合は
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer
ブラウザでこのアドレスにアクセスすれば、以下のようなXMLが取得できます。
このURLは、以下のような構造になっています。
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
db=pubmed
term=cancer
http:// 基本URL ? パラメータ & パラメータ & ...
という形で結合して、リクエストのURLを作成します。
PHPでアクセスする場合、以下のようなコードを書きます。
<?php $query = "cancer"; $url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=" . urlencode($query); $h = curl_init(); curl_setopt($h, CURLOPT_URL, $url); $result = curl_exec($h); header("Content-type:text/xml\n\n"); print $result;これで
$result
変数にXMLデータが格納されるので、
後は適当なXMLパーサをくぐして煮るなり焼くなりお好みに、というわけです。
拙作のAT Fieldでは、
このXMLデータをそのままJavaScript側に渡して、jQueryでXMLの解釈を行なっています。
db=pubmed
と指定します。rettype=Count
とすると検索ヒット数だけを表示します。datetype=mdat
: modification date
datetype=pdat
: publication date
datetype=edat
: Entrez date
mindate=2005&maxdate=2007
とすれば、2005年〜07年までの範囲を検索できます。db=pubmed
と指定します。