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

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

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

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

Google Apps Script

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

Q&A

解決済

1回答

323閲覧

gasの特的条件のみ抽出したい

AGLAAGLA

総合スコア54

スクレイピング

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

Google Apps Script

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

0グッド

0クリップ

投稿2022/05/10 16:01

編集2022/05/10 16:08
function myFunction() { var url = "https://fortune.yahoo.co.jp/12astro/ranking.html" // Yahoo!占い var html = UrlFetchApp.fetch(url).getContentText('euc-jp') var body = ''; //奇数順位の星座 var list_odd = Parser.data(html).from('<tr class="st01">').to('</tr>').iterate() //偶数順位の星座 var list_even = Parser.data(html).from('<tr class="st02">').to('</tr>').iterate() for(var i=0; i<list_odd.length; i++) { //奇数順位の星座 results_odd = parse(list_odd[i]) if (results_odd.indexOf('うお')!== -1){ Logger.log('1') }else{ Logger.log('2') } //偶数順位の星座 results_even = parse(list_even[i]) if (results_even.indexOf('うお')!==-1){ Logger.log(results_even) }else{} } } function parse(contents) { //ランクを取得 var rank = Parser.data(contents).from('<td class="st01">').to('</td>').build() rank = Parser.data(rank).from('alt="').to('">').build() //星座名を取得 var seiza = Parser.data(contents).from('<p class="seiza">').to('</p>').build() seiza = Parser.data(seiza).from('alt="').to('">').build() //コメントを取得 var text = Parser.data(contents).from('<p class="ft01">').to('</p>').build() text = Parser.data(text).from('">').to('</a>').build(); var results =[rank, seiza, text] return results }

こちらの際に、うお座のデータのみ抽出したいのですが、indexOfのif分で1を表示できなく、困っています。

[11位, うお座, 時間をつくる努力をしましょう]

のデータのみをbody挿入したいと考えています。
なぜ、if文で2しか表示されないのでしょうか?

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

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

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

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

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

k.a_teratail

2022/05/11 00:13

実行したところ 8:56:45 エラー ReferenceError: Parser is not defined myFunction @ 無題 9.gs:7 Parserが無いエラーが表示されました。 このParserはGASに追加したライブラリでしょうか? それとも、別のスクリプトに記載した変数でしょうか?
YAmaGNZ

2022/05/11 01:35

parseの戻り値が配列でその配列に対してのindexOfだから、「うお」じゃなくて「うお座」でないとダメとかじゃないですか?
AGLAAGLA

2022/05/11 12:08

ありがとうございます。 Parserに関しては追加したライブラリです。 うお座で行けました。 ありがとうございました。
guest

回答1

0

自己解決

うお座と書くことで解決しました。

投稿2022/05/11 12:08

AGLAAGLA

総合スコア54

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問