お仕事おつにゃッス🐈
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
インターネット上で公開されているデータを自動で収集できると便利ですよね?
また、いちいちデータをコピペする作業は面倒くさいですよね。この記事ではそのお悩みを、スプレッドシートとGASで解決します。

- データ収集を自動化したい
- コピペする時間を減らして作業を楽にしたい
- JavaScriptを学んだけど何をつくればいいかわからない
誰でも無料で簡単にできますので、お気軽に学んでいきましょう!
高度なスクレイピングを学べるスクール3選
インターネット・アカデミーは実践的なノウハウが身に付くスクール。
- Pythonでスクレイピングの基礎から学習できる
- Web技術の世界最高位の団体「W3C」のメンバー
- 24時間いつでも動画を見放題
日常業務を効率化して残業を減らしたい人におすすめです。
Winスクール は法人研修も行う信頼性の高いスクール。
- 全国50以上の教室で対面受講できる
- 年間に1.7万人以上が受講
- Pythonプログラミング講座でスクレイピングを習得
プロの講師から直接学びたい人におすすめです。
Aidemyは社会人が選ぶDX人材育成サービスNo.1の実績。
- 受講料70%オフの教育給付金対象講座
- 運営企業は東証グロース上場
- AIアプリ開発講座で高度なスクレイピング
AIや機械学習も専門的に学ぶならおすすめです。
タップできる目次
GASでWEBスクレイピングするイメージ

GASでYahoo!ニュースの経済項目をスクレイピング。
コピペの繰り返すことなく、1クリックですべての作業が終わります。
今回は記事のタイトルのみを抽出してログ出力するようにします。
参考記事 : 経済ニュース - Yahoo!ニュース
スクレイピングとは?
サンプルコードを紹介する前にスクレイピングとは何かを解説します。
Web上のデータを自動で取得する技術

スクレイピングとは、WEB上に存在するデータを自動的に取り出して保存する技術です。
競合調査や分析など、大規模にデータを処理するときに使用します。
データ収集から保存までの一連の作業を自動化すると手間と作業時間を大いに減らせます。
なので、1クリックで必要な情報をすべて手に入るのがスクレイピングといえます。
スクレイピングで気を付けること
スクレイピングを行うには運営サイトが許可しているかを確かめる必要があります。
サーバーへの過度な負荷や抽出したデータの著作権侵害の可能性があるため。
スクレイピングの許可は公開されているYahoo!のrobot.txtを確認します。
記事タイトルを得ること自体は問題なさそうですが、過度にスクレイピングするのは厳禁。

スクレイピングが原因で事件に発展!?

過度なスクレイピングで刑事事件になったことがあります。
2010年の岡崎市立中央図書館事件です。
利用者からサイトに接続できないと苦情が相次いでいましたが、とある男性が図書館の蔵書検索システムに自作のクローラを実行して図書情報を取得していたのが原因。
男性はサーバコンピューターの機能を停止させたとして業務妨害で逮捕されてしまいました。
GASの利用者は過度なスクレイピングをしないと信じていますが、便利だからといって使いすぎるのはご法度。
他社サービスに迷惑をかけず、robot.txtをしっかりと確認してからスクレイピングしましょう。
参考サイト : 岡崎市立中央図書館
参考記事 : 岡崎市立中央図書館事件 - Wikipedia
GASでWebスクレイピングをする準備
Google Apps Script で日本の株価を取得する準備をします。ファイルは1つ必要です。
必要なファイル
- Google スプレッドシート ・・・ 株式データの保存と株価のリアルタイム更新
サンプルコードを貼り付ける方法
サンプルコードはGoogle スプレッドシートにコピペ。
上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。

Parserライブラリの導入
GASでスクレイピングを行うには「Parserライブラリ」をダウンロードする必要があります。
コードを貼り付けるApps Scriptの左側にある「ライブラリ」をクリックします。

スクリプトIDに「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」と記入して検索ボタンをクリック。

Parserのバージョン8を導入します。確認できたら、追加ボタンを押すと準備は完了です。

GASでWebスクレイピングするサンプルコード
GASでWebスクレイピングするサンプルコードを紹介していきます。
解説の項目
- サンプルコード
- buildメソッド と iterateメソッドの違い
- 【質問】コード内のdivやulは何?
サンプルコード
右上にあるマークを押すとコードのコピペが一瞬でできます。
この短いコードでスクレイピングできます。
function getNewsTitle(){
const url = "https://news.yahoo.co.jp/categories/business"; //スクレイピング先URL
const html = UrlFetchApp.fetch(url).getContentText(); //fetch通信でサイト内の文章を取得
const topicsDiv = Parser.data(html).from('<div class="sc-fhiYOA lmAaIt">') .to("</div>").build(); //ul要素を抽出
const topicsUl = Parser.data(topicsDiv).from('<ul>').to("</ul>").build(); //li要素を抽出
const topicsA = Parser.data(topicsUl).from('class="sc-btzYZH kitJFB"').to('>').iterate(); //記事タイトルを抽出
//取得した記事数ぶん、タイトルをログ出力
for(let i = 0; i < topicsA.length; i++){
//不必要な文字列を取り除いて記事タイトルを出力
Logger.log(topicsA[i].replace(/<span class="sc-bYSBpT kVZVlG"|>/g,"").replace('</a',""));
}
}
buildメソッド と iterateメソッドの違い
サンプルコードでは記事タイトルを抽出するのに2つのメソッドを使用。
buildメソッドとiterateメソッドの違いは要素を抽出する範囲です。
- buildメソッド ・・・ 1番最初の要素のみを抽出
- iterateメソッド ・・・ 該当する要素をすべて抽出
文字だけではわからないので、以下のコードからli要素を抽出して違いを見ていきます。
function test(){
const html = '<ul class="season"><li>春</li><li>夏</li><li>秋</li><li>冬</li></ul>';
}
buildメソッド
function test(){
const html = '<ul class="season"><li>春</li><li>夏</li><li>秋</li><li>冬</li></ul>';
const data = Parser.data(html).from('<li>').to('</li>').build();
Logger.log(data); //春を出力
}
1番最初のli要素内にあった「春」のみを出力します。
つまり、先頭の要素だけを抽出します。
iterateメソッド
function test(){
const html = '<ul class="season"><li>春</li><li>夏</li><li>秋</li><li>冬</li></ul>';
const data = Parser.data(html).from('<li>').to('</li>').iterate();
Logger.log(data); //[春,夏,秋,冬]を出力
}
ul要素内のli要素をすべて取得し、その中の文字列をすべて抽出します。
抽出後にdataは配列に変換して、li要素内の文字列を要素として格納します。
【質問】コード内のdivやulは何?

今回紹介したコードの中には「div」や「ul」などの文字が見られます。
これはHTML(HyperText Markup Language)というWebサイトを作成するために開発された言語で、ページ内の情報を構造化したもの。
スクレイピングでは、この構造化したHTMLを読み取ってタイトルを抽出しています。

GASでWebスクレイピングするテスト
実際に、スプレッドシートで文字列を検索します。
Apps Scriptの上バーの文字が「getNewsTitle」になっていたら「実行」を押します。

「このアプリはGoogleで確認されていません」と表示した場合はこちら。
-
【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法
続きを見る
以下のようにログ出力されたら成功です。
ニュース記事のタイトルをすべて抽出できました。

【応用】取得したデータをスプシに記入する方法
応用で取得したデータをスプレッドシートに記入して保存できるようにします。
内容はほとんど変わりません。
コメントに「★」がついた2行を追加するだけで実現します。
function getNewsTitle(){
const sheet = SpreadsheetApp.getActiveSheet(); //★★アクティブ状態のシートを指定★★
const url = "https://news.yahoo.co.jp/categories/business"; //URL
const html = UrlFetchApp.fetch(url).getContentText(); //fetch通信でサイト内の文章を取得
const topicsDiv = Parser.data(html).from('<div class="sc-fhiYOA lmAaIt">') .to("</div>").build(); //ul要素を抽出
const topicsUl = Parser.data(topicsDiv).from('<ul>').to("</ul>").build(); //li要素を抽出
const topicsA = Parser.data(topicsUl).from('class="sc-btzYZH kitJFB"').to('>').iterate();
//取得した記事数ぶん、タイトルをログ出力
for(let i = 0; i < topicsA.length; i++){
//不必要な文字列を取り除いて記事タイトルを出力
const topic = topicsA[i].replace(/<span class="sc-bYSBpT kVZVlG"|>/g,"").replace('</a',"");
sheet.getRange(i+1, 1).setValue(topic); //★★i+1番目に文字列を記入★★
}
}
実行結果は以下の通り。
Yahoo!ニュースの記事タイトルをスプレッドシートに保存できているのがわかります。

高度なスクレイピングを学べるスクール3選
プログラミングで高度なWebスクレイピングのスキルが身に付くスクールを3つ紹介。
プログラミング独学の挫折率は60%近くと高め。
エラーを解決できなかったり相談できる人がいなかったりと理由はさまざまです。
モチベを保てる環境を整えたのがスクールで挫折率を1割未満に抑えられます。
そこで、デイコーで調査した82社から厳選して解説します。

- インターネット・アカデミー | Pythonでスクレイピング学習
- Winスクール | ほぼ全国で対面受講できる
- Aidemy | 東証グロースに上場
インターネット・アカデミー | Pythonでスクレイピング学習

おすすめコース | Pythonコース |
受講料(税込) | 89,100円 |
受講形式 |
|
強み |
|
インターネット・アカデミーは初心者から最短距離でスキルを習得するスクール。
初心者が挫折しないサポートが10個が特徴で以下はその一部。
- 動画授業が24時間見放題
- 1年間受講受け放題
- 技術面の質問ができるチャットサービス
- 受講生限定のセミナーや交流会
- 手厚い転職準備サポート&求人紹介
卒業後には未経験からエンジニア転職するキャリアプランも築けます。
Webスクレイピング講座はPythonを用いた高度なスクレイピングスキルを習得。
Seleniumを利用しつつ、会員サイトの自動取得やデータ集計を学びます。
いつもの作業を効率化して残業を減らすならおすすめ。

Winスクール | ほぼ全国で対面受講できる

おすすめコース | Pythonプログラミング ![]() |
受講料(税込) | 216,700円~(受講料+入会料+教材費) |
分割払い(36回) | 6,582円~ |
受講形式 |
|
強み |
|
Winスクールは年間に約1,500社の研修に携わるスクールです。
オンラインと対面受講を併用して学習できるのが特徴。
全国に50校ある校舎で少人数教室で担当講師に直接質問できます。
Pythonプログラミング講座では、基礎基本からスクレイピング技術まで幅広く学習。
営業職や事務職などの非エンジニアでも、日常業務を自動化するスキルが身に付きます。

Aidemy | 東証グロースに上場

おすすめコース | AIアプリ開発講座 |
受講料(税込) | 528,000円~ |
給付金適応後(70%オフ) | 158,400円~ |
分割払い(36回) | 18,024円~ |
受講形式 |
|
強み |
|
AidemyはDX時代の新スキルを基礎から学ぶ Python 特化型のプログラミングスクール。
初心者にとって難しい内容でも挫折しないで学べる環境が整っています。
- 仲間と学べるバーチャル学習室
- チャットで質問し放題
- 講師のコードレビュー
- 1回25分のオンラインカウンセリング
- オリジナルのポートフォリオ作成支援
転職サポートもあるので、未経験からエンジニアも目指せます。
AIアプリ開発講座では、PythonでオリジナルのAIアプリ開発スキルを習得。
BeautifulSoupを用いた高度なスクレイピングを学日ます。
最新技術で一歩先を目指すビジネスマンにおすすめです。

おわりに | スクレイピングで楽になろう!
以上がGoogle Apps ScriptでWebスクレイピングをする方法でした。
そのままコピペしたりデータ収集に使ったりしてみましょう。
今回紹介したサンプルコード以外にも、GASでスクレイピングを使うことは可能。
-
【不安解消】GASでLINEに日本株の1日の値動きを通知
続きを見る
-
【便利】GASで日本の個別株の株価を取得する方法
続きを見る
ヒューマンエラーが起きやすく時間がかかる作業をGASに任せましょう。
不明点やスクール選びで悩んでいるならデイコーのお問い合わせまでご連絡を。
あなたのお力になります。