表題の通りで、できない理由を知りたい
このサイトでは正規表現を使ってやっていて、これをParserを使ってやってみたところできなかった。
tedのスピーカー名を取ってきます
成功したコード(正規表現)
gas
1 function SpeakersArray() { 2 var url = 'https://www.ted.com/talks?language=ja&page=1'; 3 var content = UrlFetchApp.fetch(url).getContentText(); 4 5 6 var step1 = content.match(/<h4\sclass='h12\stalk-link__speaker'>.*</h4>/g); 7 var extract = [] 8 for (var i=0;i<=step1.length-1;i++){ 9 extract.push(step1[i] 10 .replace(/<h4\sclass='h12\stalk-link__speaker'>/g,"") 11 .replace(/</h4>/g,"") 12 .replace(/\n/g)); 13 } 14 console.log(extract); 15}
成功したログ
log
1[20-04-01 03:23:41:519 PDT] [ 'Mark Lytle', 2 'Alanna Shaikh', 3 'Adam Kucharski', 4 'David Heymann', 5 'Alex Rosenthal', 6 'Gerd Gigerenzer', 7 'Lauren Sallan', 8 'Yve Blake', 9 'Alex Gendler', 10 'Patrick McGinnis', 11 'Jay Van Bavel', 12 'Alex Rosenthal', 13 'Kenny Coogan', 14 'Melody Smith', 15 'Michael R. Stiff', 16 'Walter R. Tschinkel', 17 'Alex Rosenthal', 18 'Anna Piperal', 19 'Eden Girma', 20 'Leon Marchal', 21 'Julian Burschka', 22 'Rod Phillips', 23 'William D. Desmond', 24 'Nick Bostrom', 25 'Dan Kwartler', 26 'Sheila Marie Orfano', 27 'Jill Dash', 28 'Alex Rosenthal', 29 'Eve Ensler', 30 'Hyunsoo Joshua No', 31 'Cornelia Geppert', 32 'Alex Gendler', 33 'Chris A. Kniesly', 34 'Mike Cannon-Brookes', 35 'Alex Gendler', 36 'Sougwen Chung' ]
失敗したコード(Parser)
gas
1 function SpeakersArray() { 2 var url = 'https://www.ted.com/talks?language=ja&page=1'; 3 var fromText = '<h4 class="h12 talk-link__speaker">'; 4 var toText = '</h4>'; 5 6 7 var content = UrlFetchApp.fetch(url).getContentText(); 8 var extract = []; 9 var extract = Parser.data(content).from(fromText).to(toText).iterate(); 10 console.log(extract); 11}
ライブラリはしっかり入れています。
すませんがよろしくお願いします。
あなたの回答
tips
プレビュー