青果物卸売市場調査(日別調査)のデータを自動取得してスプレッドシートに記録する GAS (Google Apps Script) を作成してみました。
元となるデータは農林水産省が公表しているものですが、(おそらく)国外からのアクセス制限が設けられているようで GAS で直接取得することができません(403 ERROR になります)。そこで cultivationdata.net の Web API を利用します。JSON 形式でデータを取得し、スプレッドシートに保存します。非常に便利ですねぇ(笑)。
・スプレッドシートの準備
1行目に見出しを作ります。A 列から H 列に「日付」「都市名」「品目コード」「産地コード」「数量 (Kg)」「価格 (円/Kg)」「対前日比数量 (%)」「対前日比価格 (%)」となります。
シート名は「data」としています。
・GAS スクリプトの作成
今回は「主要卸売市場計」の「野菜」から「生しいたけ」(品目名)の「総量」(産地名)を取得します。
function getWmrData() {
let url = "https://api.cultivationdata.net/wmr?cc=0000&cat=v"; //「主要卸売市場計」「野菜」
//JSONデータの取得
let response = "";
try {
response = UrlFetchApp.fetch(url);
} catch(e) {
return response;
}
let data = JSON.parse(response.getContentText());
if(data["Error"] == "都市のデータが見つかりませんでした。") {
return
}
let wmr = [];
//品目名「生しいたけ」
//産地名「総量」
wmr.push(data["Date"]); //日付
wmr.push(data["CityName"]); //都市名
wmr.push(data["生しいたけ"]["ItemCode"]); //品目コード
wmr.push(data["生しいたけ"]["総量"]["ProductionAreaCode"]); //産地コード
wmr.push(data["生しいたけ"]["総量"]["TradingVolume"]); //数量 (Kg)
wmr.push(data["生しいたけ"]["総量"]["AveragePrice"]); //価格 (円/Kg)
wmr.push(data["生しいたけ"]["総量"]["VolumeVersusPreviousDay"]); //対前日比数量 (%)
wmr.push(data["生しいたけ"]["総量"]["PriceVersusPreviousDay"]); //対前日比価格 (%)
return wmr;
}
function setWmrData() {
const spreadsheet = SpreadsheetApp.openById("スプレッドシート ID");
const sheet = spreadsheet.getSheetByName("data");
let lastRow = sheet.getLastRow();
if(getWmrData() != null) {
//900行以上なら1行追加
if(lastRow >= 900) {
sheet.insertRows(lastRow + 1);
}
let wmrData = getWmrData();
if(lastRow == 1) {
sheet.getRange(lastRow + 1, 1, 1, 8).setValues([wmrData]);
} else {
let lastDate = sheet.getRange(lastRow, 1).getValue(); //前回の日付
lastDate = Utilities.formatDate(lastDate, "JST", "yyyy/M/d");
//日付が重複しなければスプレッドシートに入力
if(wmrData[0] != lastDate) {
sheet.getRange(lastRow + 1, 1, 1, 8).setValues([wmrData]);
}
}
}
}
34行目の「スプレッドシート ID」を書き加えてください。
ちなみに、別のデータを取得したい場合は、2行目の「0000」「v」部分、及び23行目から28行目「生しいたけ」「総量」部分を書き換えてください。
・実行結果
トリガーを設定して毎日 setWmrData 関数を実行した結果が次の画像になります。8/14のデータが抜けているのは休市日のためです。
***
ということで、GAS による cultivationdata.net の Web API を利用した青果物卸売市場調査(日別調査)の自動取得方法でした。
青果物市況情報についても Web API がありますので似たような GAS で取得が可能です。
ご参考になれば幸いです。
![詳解! Google Apps Script完全入門 [第3版]](https://m.media-amazon.com/images/I/51FYffSOBcS._SL160_.jpg)
詳解! Google Apps Script完全入門 [第3版]
by SimpleImageLink
・関連投稿
青果物卸売市場調査(日別調査)を JSON 形式で取得する Web API を作りました。

