楽天apiを使用してRで商品データを取得したい
楽天商品検索apiを使ってキーワードから商品データを取得したい
自分のコードでは155件のデータを取得して終わってしまいます。
楽天市場のサイトでキーワードに「pc monitor」と打つと98,496件と
表示されるので、本来データはもっとあるはず、、
なぜ自分のコードでは155件しか取得できないのでしょうか?
また、どうすればさらに多くのデータを取得できるのでしょうか?
どなたか教えていただけると幸いです。
コードでfor文を6回までにしているのは、一回の読み込みで30件データを
取得しているので、このコードで30×6=180件取得できるかどうかを
確かめたかったためです。
url = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20220601"
id = "アプリID"
keyword1 = "pc"
keyword2 = "monitor"
Data = list()
page = 1
for (page in 1:6) {
params = list(
format = "json",
keyword = keyword1,
keyword = keyword2,
applicationId = id,
formatVersion = 2,
page = page)
response = GET(url, query = params)
data = fromJSON(content(response, "text", encoding = "UTF-8"))
items = data$Items
Data = rbind(Data, items)
page = page + 1
}
解決後追記
原因はkeywordを複数設定したい場合、上記コードのようにkeyword = として複数回記述するのではなく、「キーワード1 キーワード2」のように半角スペースで記述したものをkeyword = "キーワード1 キーワード2"とすればよい、という話だった。
ただ、それの指し示すところは
keyword = "キーワード1",
keyword = "キーワード2"
と記述した場合は155件、
keyword = "キーワード1 キーワード2"
と記述した場合は76,358件
と、検索の仕方が大きく異なるということ。
いずれにせよ、知恵を貸してくださった@nak435さん、@Verclene さん、@uasiさんには感謝しかありません。迅速なご対応、ありがとうございました。
解決後コード
keyword = "pc monitor"
Data = list()
page = 1
for (page in 1:6) {
params = list(
format = "json",
keyword = keyword,
applicationId = id,
formatVersion = 2,
page = page)
response = GET(url, query = params)
data = fromJSON(content(response, "text", encoding = "UTF-8"))
items = data$Items
Data = rbind(Data, items)
}