GASでWebページから取得したHTMLを変数source
に入れて、.match
で複数のデータを配列へと代入しようとしたのですが、
どう正規表現を記述すればよいのかわかりません。
html
1<p class="boid main-root jss439">10日</p> 2:略 3<p class="boid main-root jss569">18日</p> 4:略 5<p class="boid main-root jss659">20日</p>
webページのHTML内で上記の部分があるとして、この中の**日
の部分を抜き出し、配列に代入したいです。
この場合の正規表現はどのように記述すればいいのでしょうか?
様々なことを試したのですが、jss***
の部分が不特定なため、ページ全体から抜き出すことが自分はできませんでした。
また、jss***
の数値部分は3桁ということで確定しています。
その他
HTMLは以下のコードでsource
へ代入しています。
javascript
1 const URL = 'https://example.com'; //Target URL 2 var key = '##-#####-#####-#####-#####-#####'; 3 4 var option = 5 {url:URL, 6 renderType:"HTML", 7 outputAsJson:true}; 8 var payload = JSON.stringify(option); 9 payload = encodeURIComponent(payload); 10 var url = "https://phantomjscloud.com/api/browser/v2/"+ key +"/?request=" + payload; 11 var response = UrlFetchApp.fetch(url); 12 13 var json = JSON.parse(response.getContentText()); 14 var source = json["content"]["data"];
他の部分で少々強引ですが、他の部分は下のようにして抜き出すことができました。
javascript
1 var itemRegexp = new RegExp(/<a href="/events/(.*?)>/g); 2 var item = source.match(itemRegexp); 3 4 for (var i = 0; i < item.length; i++){ 5 item[i] = item[i].replace("<a href=\"/events/", ""); 6 item[i] = item[i].replace("\">", ""); 7 Logger.log(item[i]); 8 }
===
どうかよろしくお願いします
###追記(2019/11/27)
実行環境についてわかりにくかったと思われるため、追記します。
実行環境
Google Apps Script 同スクリプトファイルでは、ES5で記述しているため、基本的にES5を使用したいです。
回答2件
あなたの回答
tips
プレビュー