質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

0回答

2308閲覧

gasのスクレイピングで、正規表現ではできて、Parserだとできない

masamasamasa

総合スコア95

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

2クリップ

投稿2020/04/01 10:43

表題の通りで、できない理由を知りたい

このサイトでは正規表現を使ってやっていて、これを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}

ライブラリはしっかり入れています。
すませんがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問