前提・実現したいこと
- SpreadsheetのA列に入力された文章からURLをC列にセットする。
- A列の文章からURLが取得できた場合、
HTTPResponse
から<title>
のみ取得し、B列にセットする。
悩んでいること
<title>
のみ取得し、B列にセットできず、困っています。
該当のソースコード
function onEdit(e){ var range = e.range; if(range.getColumn() == 1){ // A列が変更された時に実行される getUrlInLineA(range); } } function getUrlInLineA(range) { var url_reg = /http(s)?://([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?/; try{ // 変更されたA列カラムの値を取得 var message = range.getValue(); // URLの正規表現にマッチした値を取得 var url = message.match(url_reg)[0]; if(url){ // C列に取得したURLをセットする range.offset(0, 2).setValue(url); getTitle(range, url); } }catch(e){ return ""; } } function getTitle(range, url) { var my_reg = /<title[\s\S]*?>([\s\S]*?)</title>/i; var response = UrlFetchApp.fetch(url); var match = my_reg.exec(response.getContentText()); if (match) { var title = match[1]; // <title>の中身だけ取得 title = title.replace(/(^\s+)|(\s+$)/g, ""); // B列に値をセットする range.offset(0, 1).setValue(title); } }
試したこと
- ソースコード3行目の
try
直後でBrowser.msgBox(url);
を実行し、想定されたurl
が取得できていることが確認しております。 - ソースコード4行目直後で
Browser.msgBox(url);
を実行するとポップアップが表示されませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/04 05:15 編集
2019/01/04 05:14 編集
退会済みユーザー
2019/01/04 05:17