非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

GASでスクレイピングを行う方法

   

GASでスクレイピングする場合、Parserというライブラリを使えば簡単にできます。

今回はYahooファイナンスページからドル円の価格をスクレイピングする例を紹介したいと思います。

 

Parserライブラリのインストール

まず最初にParserライブラリをインストールします。スクリプトエディタの左サイドにある「ライブラリ」の「+」をクリックします。

 

以下のような画面が現れるので、スクリプトIDに「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」を入力し「検索」ボタンをクリックします。以下のような情報が現れたら「追加」をクリックして閉じます。

 

ライブラリの下に「Parser」と現れたらインストール成功です。

 

 

Webページのソースコードから取得場所確認

次にWebページ内のどこからデータを取得するか確認します。ページ上のどこでもいいのでマウスの右クリックして「ページのソースを表示」を選択します。※これはChromeブラウザの場合です。他のブラウザでも右クリックメニューに似たような表示名であると思います。

 

 

ソースコードの中から取得した場所を探します。Yahooファイナンスのドル円は以下のようになっており、赤枠部分に挟まれたところを取得します。赤枠部分をどこかにメモしておきましょう。

ソースコード

スクレイピングするソースコードはこちらです。fromeメソッドとtoメソッドに先程の赤枠部分を入力することで、その間のドル円価格を取得できるわけです。

//スクレイピングしたいWebページのURL
let url = "https://finance.yahoo.co.jp/quote/USDJPY=X";
//HTMLソース取得
let html = UrlFetchApp.fetch(url).getContentText("EUC-JP");
//Parserライブラリで為替値抽出
let val = Parser.data(html)
.from("<dd class=\"_2HaH4i8e\"><span class=\"cTQeZkyL\"><span class=\"_3BGK5SVf\">")
.to("</span>")
.iterate();

console.log(val);
 

 

実行結果がこちら。ちゃんと取得できましたね。

 

スポンサーリンク

 - Google Apps Script