Help us understand the problem. What is going on with this article?

【GAS】初めてのスクレイピング 〜会社の株価を取得〜

ある株価の情報取得をスクレイピングで自動化する

  • ターゲット企業: Google

設計

  1. 株価を取得するURLを定義
  2. 株価を格納しているタグを見つける
    1. もし存在すればタグ直後にある数字をSpreadSheetのセルに入力
    2. もしなければ何もしない

GASの記述

getStockVal.gs
function getValOfStack() {
  // データ取得するURLを定義
  const url = "https://stocks.finance.yahoo.co.jp/us/chart/GOOGL";

  // 取得した株価を出力するBookを定義
  const book = SpreadsheetApp.getActiveSpreadsheet();

  // 出力先のBookのシートを定義
  const sheetData = book.getSheetByName("シート1");

  // APIを用いて指定したURLにアクセスし、とりあえず全部取ってくる
  const res = UrlFetchApp.fetch(url);

  // 受け取った情報をUTF-8のテキストとして加工
  var html = res.getContentText('UTF-8');

  // 今回株価が入っているタグ(<td class="stoksPrice">1234</td>)みたいになっている
  const targetTag = '<td class="stoksPrice">';

  // タグが存在しているか確認(indexOfは見つからなかったら-1を返す)
  const index = html.indexOf(targetTag);

  // もし見つかればターゲットタグ以降を抜き出す
  if (index !== -1) {
    // indexは、見つけば場所を与える。ターゲットタグ分の文字列を与えてsubstringで切り取る
    var html = html.substring(index + targetTag.length);
    // 今htmlは(1234</td>......)となっている
    // 直近の閉じタグを見つける
    var index = html.indexOf('</td>');
    // indexは5を返す。初めて</td>が見つかるのは5文字目だから
    if(index !== -1) {
      // (1234</td>)から、1番目の文字から4番目までをセルにセット
      // substringは(第一引数 <= x < 第二引数)のようだ。
      sheetData.getRange(2, 2).setValue(html.substring(0, index));
    }
  }
}

SpreadSheet側

B2以外はとりあえず手動で記入
スクリーンショット 2019-06-02 22.57.47.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away