スプレッドシートに書き出す例です
検索結果の最初の10件の title link snippet を抽出してシートに書き出します
書き出した結果
やってみる
Google Custom Search APIで検索結果を取得するで取得したように
https://www.googleapis.com/customsearch/v1?key=API_KEY&cx=CSE_ID&q=検索ワード
↑にAPI_KEY, CSE_IDを入れて
検索ワードを「栄養素」とすると以下のような結果が返って来ます
{
"kind": "customsearch#search",
"url": {
"type": "application/json",
"template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"
},
"queries": {
"request": [
{
"title": "Google Custom Search - 栄養素",
"totalResults": "1540000",
"searchTerms": "栄養素",
"count": 10,
"startIndex": 1,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "CSE_ID"
}
],
"nextPage": [
{
"title": "Google Custom Search - 栄養素",
"totalResults": "1540000",
"searchTerms": "栄養素",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "CSE_ID"
}
]
},
"context": {
"title": "Google"
},
"searchInformation": {
"searchTime": 0.273824,
"formattedSearchTime": "0.27",
"totalResults": "1540000",
"formattedTotalResults": "1,540,000"
},
"items": [
{
"kind": "customsearch#result",
"title": "栄養素 - Wikipedia",
"htmlTitle": "\u003cb\u003e栄養素\u003c/b\u003e - Wikipedia",
"link": "https://ja.wikipedia.org/wiki/%E6%A0%84%E9%A4%8A%E7%B4%A0",
"displayLink": "ja.wikipedia.org",
"snippet": "栄養素(えいようそ、nutrient)とは、. (栄養学等)栄養のために摂取する物質を要素\nとして指す言葉。蛋白質、脂肪、炭水化物の三大栄養素のほかに、無機質、ビタミンなど\nを指す。 (生物学等)栄養のために摂取される物質。 生物学等では、「栄養素」と言うと、\n生物が代謝する目的で外界から吸収する物質のことを指している。栄養素は生体内で\n代謝され、生体内物質の原料やエネルギーを産生するのに利用されるとされる。 栄養学\n等では、上記の(生化学等での栄養素の他に)健康を維持するための食事由来の成分を\n含め ...",
"htmlSnippet": "\u003cb\u003e栄養素\u003c/b\u003e(えいようそ、nutrient)とは、. (栄養学等)栄養のために摂取する物質を要素\u003cbr\u003e\nとして指す言葉。蛋白質、脂肪、炭水化物の三大\u003cb\u003e栄養素\u003c/b\u003eのほかに、無機質、ビタミンなど\u003cbr\u003e\nを指す。 (生物学等)栄養のために摂取される物質。 生物学等では、「\u003cb\u003e栄養素\u003c/b\u003e」と言うと、\u003cbr\u003e\n生物が代謝する目的で外界から吸収する物質のことを指している。\u003cb\u003e栄養素\u003c/b\u003eは生体内で\u003cbr\u003e\n代謝され、生体内物質の原料やエネルギーを産生するのに利用されるとされる。 栄養学\u003cbr\u003e\n等では、上記の(生化学等での\u003cb\u003e栄養素\u003c/b\u003eの他に)健康を維持するための食事由来の成分を\u003cbr\u003e\n含め ...",
"cacheId": "3Ut4C2sD0UAJ",
"formattedUrl": "https://ja.wikipedia.org/wiki/栄養素",
"htmlFormattedUrl": "https://ja.wikipedia.org/wiki/\u003cb\u003e栄養素\u003c/b\u003e",
"pagemap": {
"metatags": [
{
"referrer": "origin-when-cross-origin"
}
]
}
},
...2件目以降省略
|
この中の items に検索結果の最初の10件が入っているので
今回はそれらの title と link と snippet を抽出して
シートに書き出すコードの例を書きました
コード.gs
var API_KEY = "取得したAPI KEY";
var CSE_ID = "取得したCSE ID";
var BASE_URL = "https://www.googleapis.com/customsearch/v1?key=";
var PARAM1 = "&cx=";
var PARAM2 = "&q=";
function get_data() {
var query = "栄養素";
var url = BASE_URL + API_KEY + PARAM1 + CSE_ID + PARAM2 + query;
var fetch = UrlFetchApp.fetch(url).getContentText();
var obj = JSON.parse(fetch);
var items = obj["items"];
var array = [];
for (var i = 0; i < items.length; i++) {
var title = items[i]["title"];
var link = items[i]["link"];
var snippet = items[i]["snippet"];
array.push([title, link, snippet])
}
set_values(array);
}
function set_values(array){
var sh = SpreadsheetApp.getActiveSheet();
var last_row = sh.getLastRow();
var start_row = last_row + 1;
var start_col = 1;
var num_rows = array.length;
var num_cols = array[0].length;
var range = sh.getRange(start_row, start_col, num_rows, num_cols);
range.setValues(array);
}
|
意訳API_KEYを設定する CSE_IDを設定する BASE_URLは"https://www.googleapis.com/customsearch/v1?key=" PARAM1は"&cx=" PARAM2は "&q=" この処理は以下を実行する 検索キーワードを決める(例では栄養素) urlにBASE_URL + API_KEY + PARAM1 + CSE_ID + PARAM2 + queryを入れて 結果を取得する JSON 文字列をオブジェクトに変換して itemsを取得する 結果を入れるarrayという入れ物を用意する itemsの数だけ以下を繰り返す titleを取得して linkを取得して snippetを取得して arrayに入れて set_valuesに渡す この処理は以下を実行する 開いているシートを取得して データの入っている最終行を取得して その次の行を入力を開始する行に設定して 入力を開始する列を設定する(例では1列目を指定) 入力する行数はarrayの長さから取得して 入力する列数はarrayの中の1行内のデータ数を取得して 入力を開始する行, 入力を開始する列, 入力する行数, 入力する列数で範囲を指定して arrayのデータを入力する |
