キーワードランキングAPI(yahoo!)について

このQ&Aのポイント
  • API初心者です。yahoo!ショッピングが公開しているキーワードランキングAPIについて質問させてください
  • yahoo!ショッピングでネットショップを運営しているのですが、seo対策の一環で旬なキーワードの動向はつねに把握したいと考えています。
  • こちらのAPIを使えばYahoo!ショッピングで検索されている人気の検索キーワード情報を取得できるという事で使い方を把握しようと自分なりに奮闘しました。しかし、データの集計開始日と集計終了日を指定する方法が分からず困っています。
回答を見る
  • ベストアンサー

キーワードランキングAPI(yahoo!)について

API初心者です。yahoo!ショッピングが公開しているキーワードランキングAPIについて質問させてください yahoo!ショッピングでネットショップを運営しているのですが、seo対策の一環で旬なキーワードの動向はつねに把握したいと考えています。 こちらのAPIを使えばYahoo!ショッピングで検索されている人気の検索キーワード情報を取得できるという事で使い方を把握しようと自分なりに奮闘しました↓ http://developer.yahoo.co.jp/webapi/shopping/shopping/v1/queryranking.html なんとか頑張ってキーワードの順位を取得する事には成功したのですが、データの集計開始日と集計終了日を指定する方法がどうしても分かりません。以下のソースにどのような記述を付け足せば任意のデータ集計期間の情報を取得できるようになるのでしょうか? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>爆速JSONP</title> </head> <body> <script src="http://i.yimg.jp/images/yjdn/js/bakusoku-jsonp-v1.js" data-url="http://shopping.yahooapis.jp/ShoppingWebService/V1/json/queryRanking" data-p-appid="アプリケーションID" data-p-category_id="検索キーワードの動向を知りたいカテゴリ" > 1位 {{#ResultSet}} {{#0}} {{#Result}} {{#1}} {{Query}} {{/1}} {{/Result}} {{/0}} {{/ResultSet}} <br> 2位 {{#ResultSet}} {{#0}} {{#Result}} {{#2}} {{Query}} {{/2}} {{/Result}} {{/0}} {{/ResultSet}} <br> 3位 {{#ResultSet}} {{#0}} {{#Result}} {{#3}} {{Query}} {{/3}} {{/Result}} {{/0}} {{/ResultSet}} <br> 4位 {{#ResultSet}} {{#0}} {{#Result}} {{#4}} {{Query}} {{/4}} {{/Result}} {{/0}} {{/ResultSet}} <br> 5位 {{#ResultSet}} {{#0}} {{#Result}} {{#5}} {{Query}} {{/5}} {{/Result}} {{/0}} {{/ResultSet}} </script> </body> </html> お詳しい方のアドバイスを拝借したいと思い質問させていただきました。よろしくお願い致します。 m(_ _)m

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 >データの集計開始日と集計終了日を指定する方法がどうしても分かりません。 >以下のソースにどのような記述を付け足せば任意のデータ集計期間の情報を取得できるようになるのでしょうか? APIの仕様を見ましたが、リクエストパラメータに集計期間を指定するオプションが無いので任意の集計期間の情報を取得することはできないと思いますよ。 返ってきたデータを見てみるとわかりますが、 先ほどリクエストを投げたところ、 <RankingInfo> <StartDate>2014-06-23</StartDate> <EndDate>2014-06-23</EndDate> <LastModified>2014-06-24</LastModified> <Type>ranking</Type> </RankingInfo> という情報が含まれて返ってきました。 前日までの集計結果のみ返るようなAPIみたいです。

honda1978
質問者

お礼

やはり無理ですかー(;^_^A 大変参考になるお話ありがとうございましたm(_ _)m

関連するQ&A

  • Yahoo APIのXMLの取得について

    Yahoo APIのXMLで総数(totalResultsAvailable)を取得したいのですが、取得できません。 $url = "http://api.search.yahoo.co.jp/WebSearchService/xx/webSearch?appid=xxxxx&query=$query"; $xml= simplexml_load_file($url); $yahooxml=$xml->Result->Item ; $totalResults = $yahooxml->{totalResultsAvailable}; print_r ($totalResults); $urlは問題なく値が入ってるのですが、$totalResults ではSimpleXMLElement Object ( ) と返ってきてしまいます。どうすれば、$totalResults の値を取得できるのでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • YahooショッピングAPIとバリュコマAPI

    valuecommerceAPIを使ってサイト構築をしています。 そこで質問なのですが、valuecommerceAPIでは、仕様上はYahooショッピングのデータも取得できると思います。 その一方、Yahooでも独自にYahooショッピングのAPIを提供しています。 この、valuecommerceAPIとYahooAPIとで、Yahooショッピングから取得できる商品に差はあるのでしょうか。 ご回答よろしくお願い致します。

  • APIで検索結果を1件だけ取得する方法を教えてください

    日曜プログラマーのため、プログラミング知識が乏しいのですが質問させてください。 「Simple API」というサイトのWikipedia APIのサービスを利用しようと考えているのですが、 サイト上で紹介されているPHPサンプルですと、キーワードによっては複数件の結果を取得してしまいます。 --------以下サンプル------- <?php // キーワード指定 $keyword = "東京"; // APIのURL $url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php"; // データを取得 $data = file_get_contents($url) ; // PHPシリアライズパーサーを利用して解析し、配列に入れる $array = unserialize($data); // 配列をforeachで表示するデモ print "<H1>Wikipedia情報</H1>"; foreach ($array as $key => $value) { print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>". $value[body] ."<hr/>\n\n"; } ?> ------------------ 私のやりたいこととしては、検索キーワードに対して1件目の結果のみ表示させたいのですが、うまいやり方がわからず困っています。 (データ取得自体は1件のみでも複数件でも構わないのですが、表示は1件目のみさせたいです) どなたか1件目の結果のみ表示されるサンプルコードをご教授願えませんでしょうか。 よろしくお願いいたします。 【SimpleAPI vol.3 - Wikipedia API】 http://wikipedia.simpleapi.net/

    • ベストアンサー
    • PHP
  • Jsonpのコールバック関数に内に引数を渡すには?

    APIで返されたJsonpコールバック関数に引数を渡したいのですが、やり方が判りません。 それともそもそも、間違っていて 1.引数を渡さない 2.コールバック関数内のデータを一旦変数にいれてコールバック関数内から取り出す。 3. 2で取り出したコールバック関数内のデータと1で渡そうとしていた引数を使う。 とやったほうがいいのでしょうか。 当方経験が浅いためよくわかっていません。基本的な間違いの可能性が高いと思います。 識者の方ご教授下さい。お願いします。 function start(){ var str = "渡したい引数"; var param = new Object(); param.keyword = '東京'; param.inputcharset = 'utf8'; param.outputcharset = 'utf8'; param.format = 'jsonp'; param.callback = 'jsonp4travelAPI'; var url = 'http://api.4travel.jp/Ver1/SearchAlbum.php?'+obj2query( param ); // script 要素の発行//ここでAPIへリクエストを送る。 var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src = url; document.body.appendChild( script ); } // 4travel検索終了後のコールバック関数 function jsonp4travelAPI ( data ) { // データが取得できているかチェック // //ここに渡したい引数も持ってきたい。でも str is not definedになります。 alert(str); } // オブジェクトからクエリー文字列を生成する関数 function obj2query ( obj ) { var list = []; for( var key in obj ) { var k = encodeURIComponent(key); var v = encodeURIComponent(obj[key]); list[list.length] = k+'='+v; } var query = list.join( '&' ); return query; } window.onload =start;

  • Wikipedia APIの結果からタイトルやURL、本文のダイジェスト(body)を抜き出すには?

    http://wikipedia.simpleapi.net/api?keyword=Google&output=json&callback=receive" 上記のURIをたたくと、 receive([{"language":"ja","id"・・・・・・ でスタートする結果が返ってきます。その結果からタイトルやURL、本文のダイジェスト(body)を抜き出すにはどのようにしたら良いのでしょうか? function receive(result){ が呼び出されるとすると、結果はresultに入りますよね? 結果からタイトルやURL、本文のダイジェスト(body)を取り出したいのです。 result.urlとしてみたり、[]があるので、配列なのかなと思い、result.[0]などを試してみました。 JSON形式の理想配列などを使っているのですかね?? よくわからず困っています。 試してみたプログラムを載せておきます。 //受信 function receive(result){ var s=""; //URL・タイトル・概要 s+= "<p>"+ result.url+ "<br>"+ result.title+ "<br>"+ result.body+ "</p>"; } //結果の表示 document.getElementById("display").innerHTML=s; }

  • google feed api

    以下のようにブログのフィードを取得しようとしたのですが、何も出てきません。APIキーは 間違っていないです。二つのファイルは同階層です。余分なところは省略しています。 //test.html <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAABuy1BFnkBh8stkm....................................."> </script> <script type="text/javascript" src="test.js"> </script> </head> <body> <p>Google AJAX Feed API テスト</p> </body> </html> //test.js google.load("feeds", "1"); function initialize() { google.feeds.lookupFeed("http://feedblog.ameba.jp/rss/ameblo/blog/rss20.xml", getFeedUrl); } function getFeedUrl(result){ if (!result.error){ if (result.url != null) { var feed = new google.feeds.Feed(result.url); feed.load(dispfeed); } }else{ var container = document.getElementById("feed"); container.innerHTML = "フィードがありません"; } } function dispfeed(result){ if (!result.error){ var container = document.getElementById("feed"); var htmlstr = ""; htmlstr += '<h2><a href="' + result.feed.link + '">' + result.feed.title + '</a></h2>'; for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; htmlstr += '<h3><a href="' + entry.link + '">' + entry.title + '</a></h3>'; htmlstr += "<p>" + entry.publishedDate + "</p>"; htmlstr += "<p>" + entry.contentSnippet + "</p>"; htmlstr += "</p>"; } container.innerHTML = htmlstr; }else{ alert(result.error.code + ":" + result.error.message); } } google.setOnLoadCallback(initialize);

  • WikipediaのPHPによるAPIについて

    http://wikipedia.simpleapi.net/ にサンプルが出ていて、それを利用しようと思っています。 --以下サンプル <?php // キーワード指定 $keyword = "多田富雄"; // APIのURL $url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php"; // データを取得 $data = file_get_contents($url) ; // PHPシリアライズパーサーを利用して解析し、配列に入れる $array = unserialize($data); // 配列をforeachで表示するデモ print "<H1>Wikipedia情報</H1>"; foreach ($array as $key => $value) { print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>". $value[body] ."<hr/>\n\n"; } ?> --サンプル以上 実際のwikipediaで"多田富雄"を入力し調べた時と、上記サンプルを起動してprintした時では内容が異なります。 (上記サンプルの方がかなり少ない) unserialize関数もしくはfile_get_contents関数か、別の要因かよくわかりません。 ご経験のおありの方、ヒントだけでもいただけると助かります。 なお、私のphp経験は50-100時間程度、環境はXP,Apache2,php5です。

    • ベストアンサー
    • PHP
  • ajaxとphpでapiのデータ取得

    上手にお伝えできるか不安ですが、以下の事象の原因で考えられるものがありましたら、アドバイスいただきたいです。 [処理内容] js(ajax)でphpをたたいて、GAのapiに接続、ページビューを取得して その取得内容もとにphpで静的ファイルを生成(jsonやhtml)して、任意の箇所で表示させています。 アクセスランキングのようなものになります。 ---------------------------------------------------- jsでphp呼び出し→phpでGAにアクセス→GA→phpで受け取る→jsonやhtml生成 ---------------------------------------------------- [気になる事象] GAからのデータの取得やjsonの生成は概ねうまくいっているのですが、時にデータが取得できない時があります。 何故かphpファイルを更新する(ソースに改行を加えただけ)と正しいデータが取得できたりします。 そんなことが動作に影響するのかわからないのですが、また1日後とかにデータを取得して表示させようとすると、 phpファイルを更新しない限り前回取得した状態から更新されなくなります。 キャッシュみたいなものが介在するのかわからないのですが、ajaxの部分の記述でcashはfalseとしています。 ちなみにGAの管理画面ではページビューが取れているので、apiとphpの間が怪しいといえば怪しそうな気もしています。 尚、静的ファイル(jsonやhtml)のタイプスタンプの更新は、js(ajax)にアクセスする度に正しく行われている為、 それらのファイルの生成そのものは問題ないと思われます。 拙い説明で恐縮ですが、 どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • yahoo API ASP.NETで表示させるには

    お世話になります 環境 Windowsxp pro asp.net vb ACCESS(テーブル) 超初心者 Yahoo APIですが下記を参考中に作成しています http://www.atmarkit.co.jp/fdotnet/dotnettips/477 aspx-------------------------------------------------------------- <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default6.aspx.vb" Inherits="loop_Default6" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>webAPI</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtKeyword" runat="server"></asp:TextBox> <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" Text="検索" /> <br /> <asp:BulletedList ID="list" runat="server" DataSourceID="Xml" DataTextField="Title" DataValueField="Url" DisplayMode="HyperLink"> </asp:BulletedList> <asp:XmlDataSource ID="Xml" runat="server" DataFile="http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=自分のID&query=apiとは?&results=20" TransformFile="~/App_Data/YahooSearch.xsl"></asp:XmlDataSource> <br /> </div> </form> </body> </html> aspx.vb Partial Class loop_Default6 Inherits System.Web.UI.Page Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click Xml.DataFile = _ "http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=自分のID&query=" _ & Server.UrlEncode(txtKeyword.Text) & "&results=50" End Sub End Class xsl--------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:yahoo="urn:yahoo:jp:srch" version="1.0"> <xsl:template match="/yahoo:ResultSet"> <ResultSet> <xsl:for-each select="yahoo:Result"> <Result> <xsl:attribute name="Title"> <xsl:value-of select="yahoo:Title" /> </xsl:attribute> <xsl:attribute name="Url"> <xsl:value-of select="yahoo:Url" /> </xsl:attribute> </Result> </xsl:for-each> </ResultSet> </xsl:template> </xsl:stylesheet> -------------------------------------------- 現在は表示ぐらいまでならできました これをyahooオークションで転用したいのですが ASP.NETでググってもあまりHITしません 分かる方初心者ですがご教授願います

  • MySQL+PHPでキーワード検索をもとに五十音検索を作りたいです

    キーワード検索のソースを元に五十音検索を作りたいです。 キーワード検索のソースを元に五十音検索を作りたいのですが、”あ”という文字を押したら”あ”の頭文字の一覧が出るようにするにはどうしたらいいでしょうか。 キーワード検索ではすでにキーワードを入れたら検索結果の一覧が出るようになっています。 以下が必要そうなコードの抜粋です。 <?php //抽出条件を組み立てる $array = explode(" ", $keyword); $cnt = count($array); $where = "WHERE "; for($i=0; $i < $cnt; $i++){ $where.= "koji OR kana LIKE '%".$array[$i]."%'"; if($i < $cnt-1){ $where .=" ".$searchSelect." "; } } // クエリを送信する $sql = "SELECT * FROM sampletable ".$where; $result = executeQuery($sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); //表示するデータを作成 if($rows){ while($row = mysql_fetch_array($result)) { $tempHtml .= "<tr>"; $tempHtml .= "<td>".$row[no]."</td><td><A href='result2.php?koji=$row[koji]' target='_blank'>".$row[koji]."</A></td><td>".$row[kana]."</td>"; $tempHtml .= "</tr>\n"; } $msg = $rows."件のデータがあります。"; }else{ $msg = "データがありません。"; } ?> <h3>キーワード検索</h3> 故事成語用検索フォーム(複合語検索ができます) <form name="form2" action="search2.php" method="post"> <input type="text" name="keyword" size="25"> <input type="submit" name="search2" value="検索"><br /> </form>

    • 締切済み
    • PHP

専門家に質問してみよう