スプレッドシートに書き出す例です
検索結果の最初の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のデータを入力する |