GAS
コード:
function getWikipediaUrlAndBody(q) {
var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
var res = JSON.parse(UrlFetchApp.fetch(url));
if (res !== null) {
return {'url': res[0].url,'body': res[0].body};
} else {
return null;
}
}
Gasでwikiを取得しようとしたのですが、user localとしか出ません。何回か試しましたが、できませんでした。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
自己解決
ごていねいにありがとうございます。解決しました。
投稿2023/04/08 04:52
総合スコア1
0
まずは、変数の中身が正しいか確認しましょう。
var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
var res = JSON.parse(UrlFetchApp.fetch(url));
を実行後に 変数 url や res にどのような値が入っているのでしょうか。
console.log 等を用いて、確認してみて下さい。
また、
simple_wikipedia_api
の URL は、http://wikipedia.simpleapi.net/
でしょうか。
検索すると simpleapi.net は、2020年の時点で接続しても使用できないという情報が複数ありますので、サービスが終了している可能性が高いと思います。
API の利用目的がわかりませんが、 Wikipedia の検索であれば、Wikipedia 公式 API が、 https://ja.wikipedia.org/w/api.php で提供されていますので、公式 API を使うのが良いと思います。
その場合は、値を返している return {'url': res[0].url,'body': res[0].body};
の部分もレスポンスを見ながら手直しが必要になります。
例えば、Wikipedia 公式 API を使ってキーワード検索する場合の URL は、 https://ja.wikipedia.org/w/api.php?action=query&format=json&generator=search&gsrsearch=検索キーワード
のような感じでしょうか。
例えば、 東京タワー
を検索する ( https://ja.wikipedia.org/w/api.php?action=query&format=json&generator=search&gsrsearch=%E6%9D%B1%E4%BA%AC%E3%82%BF%E3%83%AF%E3%83%BC
)と
JSON
1{ 2 "batchcomplete": "", 3 "continue": { 4 "gsroffset": 10, 5 "continue": "gsroffset||" 6 }, 7 "query": { 8 "pages": { 9 "4537714": { 10 "pageid": 4537714, 11 "ns": 0, 12 "title": "\u30c6\u30ec\u30d3\u6771\u4eac", 13 "index": 8 14 }, 15 "179940": { 16 "pageid": 179940, 17 "ns": 0, 18 "title": "\u6771\u4eac\u30b9\u30ab\u30a4\u30c4\u30ea\u30fc", 19 "index": 3 20 }, 21 "1731153": { 22 "pageid": 1731153, 23 "ns": 0, 24 "title": "\u6771\u4eac\u30bf\u30ef\u30fc", 25 "index": 1 26 }, 27 "137338": { 28 "pageid": 137338, 29 "ns": 0, 30 "title": "\u6771\u4eac\u30bf\u30ef\u30fc (\u5c0f\u8aac)", 31 "index": 2 32 }, 33 "520711": { 34 "pageid": 520711, 35 "ns": 0, 36 "title": "\u6771\u4eac\u30bf\u30ef\u30fc \u301c\u30aa\u30ab\u30f3\u3068\u30dc\u30af\u3068\u3001\u6642\u3005\u3001\u30aa\u30c8\u30f3\u301c", 37 "index": 7 38 }, 39 "819456": { 40 "pageid": 819456, 41 "ns": 0, 42 "title": "\u6771\u4eac\u30bf\u30ef\u30fc \u301c\u30aa\u30ab\u30f3\u3068\u30dc\u30af\u3068\u3001\u6642\u3005\u3001\u30aa\u30c8\u30f3\u301c (\u30c6\u30ec\u30d3\u30c9\u30e9\u30de)", 43 "index": 5 44 }, 45 "993445": { 46 "pageid": 993445, 47 "ns": 0, 48 "title": "\u6771\u4eac\u30bf\u30ef\u30fc \u301c\u30aa\u30ab\u30f3\u3068\u30dc\u30af\u3068\u3001\u6642\u3005\u3001\u30aa\u30c8\u30f3\u301c (\u6620\u753b)", 49 "index": 6 50 }, 51 "147749": { 52 "pageid": 147749, 53 "ns": 0, 54 "title": "\u6771\u4eac\u30bf\u30ef\u30fc\u30b9\u30bf\u30b8\u30aa", 55 "index": 4 56 }, 57 "3568478": { 58 "pageid": 3568478, 59 "ns": 0, 60 "title": "\u6771\u4eac\u30ef\u30f3\u30d4\u30fc\u30b9\u30bf\u30ef\u30fc", 61 "index": 9 62 }, 63 "1854535": { 64 "pageid": 1854535, 65 "ns": 0, 66 "title": "\u6771\u6b66\u30bf\u30ef\u30fc\u30b9\u30ab\u30a4\u30c4\u30ea\u30fc", 67 "index": 10 68 } 69 } 70 } 71}
のような感じで、JSON 形式で帰ってきます。
https://ja.wikipedia.org/wiki/
と title 文字列をエンコードしてつなげると Wikipedia の URL になります。
いろいろなパラメータが指定できますので、 https://ja.wikipedia.org/w/api.php のヘルプを読みながら試してみて下さい。
投稿2023/04/07 00:11
総合スコア25216
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。