Yandex API を使用してメタ検索エンジンを作成しています。Yandex は結果を XML 形式で提供します。したがって、URL、タイトル、説明などのさまざまなフィールドを取得するには、XML 応答をトラバースする必要があります。
Yandex による XML 応答は次のとおりです。 http://pastebin.com/kAVAVri9
これが私が実装した方法です:貼り付け
$dom5 = new DOMDocument();
if ($dom5->loadXML($site_results)) {
$results = $dom5->getElementsByTagName("response");
$results1 = $results->getElementsByTagName("results");
$results2 = $results1->getElementsByTagName("group");
$totals["yandex"] = 1000;
foreach ($results1 as $link) {
$url = $link->getElementsByTagName("doc")->item(2)->nodeValue;
;
$url = str_replace('http://', '', $url);
if (substr($url, -1, 1) == '/') {
$url = substr($url, 0, strlen($url) - 1);
}
$search_results[$i]["url"] = $url;
$title = $link->getElementsByTagName("doc")->item(4)->nodeValue;
$search_results[$i]["title"] = $title;
$test = $link->getElementsByTagName("doc");
$test1 = $test->getElementsByTagName("title");
$desc = $test1->getElementsByTagName("headline")->item(0)->nodeValue;
$search_results[$i]["desc"] = $desc;
$search_results[$i]["engine"] = 'yandex';
$search_results[$i]["position"] = $i + 1;
$i++;
}
}
私はphpが初めてです。愚かな間違いを犯した場合は、ご容赦ください。実装によって結果を取得できません。間違いを見つけて、xml 応答から必要なフィールドを取得するのを手伝ってください。ありがとうございました!