urlfetchappはAPIとスクレイピングに利用【GASサンプルコード有】

UrlFetchAppを使って APIとスクレイピングに利用 スクリプトの基礎
UrlFetchAppを使って APIとスクレイピングに利用
キコ
キコ

UrlFetchAppは、Google Apps Script(GAS)で提供される組み込みのサービスで、ウェブ上のデータを取得したり送信したりするためのHTTPリクエストを行うために使用されます。

APIとの通信やウェブスクレイピングにおいて、データの取得や更新、処理を簡単に行うことができます。また、JSONやXMLなどのデータ形式にも対応しています。

以下に、UrlFetchAppの基本的な使い方の例を示します。

  1. URLにGETリクエストを送信してレスポンスを取得する例:
function fetchURL() {
  var url = "https://api.example.com/data";  // 取得したいデータが存在するURL
  var response = UrlFetchApp.fetch(url);  // GETリクエストを送信してレスポンスを取得

  Logger.log(response.getContentText());  // レスポンスの内容をログに表示
}
  1. URLにPOSTリクエストを送信してデータを送信し、レスポンスを取得する例:
function sendPOSTRequest() {
  var url = "https://api.example.com/data";  // データを送信するURL
  var payload = {
    key1: "value1",
    key2: "value2"
  };  // 送信するデータ(JSON形式)

  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };

  var response = UrlFetchApp.fetch(url, options);  // POSTリクエストを送信してレスポンスを取得

  Logger.log(response.getContentText());  // レスポンスの内容をログに表示
}
  1. ヘッダーをカスタマイズしてリクエストを送信する例:
function sendRequestWithHeaders() {
  var url = "https://api.example.com/data";
  var headers = {
    "Authorization": "Bearer my_token",
    "Content-Type": "application/json"
  };

  var options = {
    headers: headers
  };

  var response = UrlFetchApp.fetch(url, options);

  Logger.log(response.getContentText());
}

これらの例では、UrlFetchAppのfetch()メソッドを使用してHTTPリクエストを送信し、レスポンスを取得しています。

レスポンスの内容は、getContentText()メソッドを使用して文字列として取得することができます。

キコ
キコ

取得したデータは、必要に応じて処理したり表示したりすることができます。

UrlFetchAppから得られるresponseオブジェクト

urlfetchappはAPIとスクレイピングに利用【GASサンプルコード有】

UrlFetchAppから得られるresponseオブジェクトには、以下のような情報が含まれます。

  1. getContentText(): レスポンスの内容を文字列として取得します。
var content = response.getContentText();
  1. getContent(): レスポンスの内容をバイト配列として取得します。
var contentBytes = response.getContent();
  1. getHeaders(): レスポンスヘッダーをオブジェクトとして取得します。各ヘッダーはキーと値のペアで表されます。
var headers = response.getHeaders();
  1. getResponseCode(): レスポンスのステータスコードを取得します。HTTPステータスコード(200, 404, 500など)が返されます。
var statusCode = response.getResponseCode();
  1. getAllHeaders(): レスポンスに含まれるすべてのヘッダーを文字列として取得します。各ヘッダーは改行文字で区切られます。
var allHeaders = response.getAllHeaders();

これらのメソッドを使用することで、UrlFetchAppのレスポンスから必要な情報を取得できます。

urlfetchappの応用事例

urlfetchappはAPIとスクレイピングに利用【GASサンプルコード有】

urlfetchappは、さまざまなシナリオで活用することができます。

以下に、いくつかの応用事例を紹介します。

外部APIとの連携

urlfetchappを使用して外部APIとデータをやり取りすることで、外部サービスとの連携を実現できます。例えば、天気情報APIから最新の天気予報を取得し、スプレッドシートに自動的に記録することが可能です。

ウェブサイトの監視

urlfetchappを使用して定期的に特定のウェブサイトを監視し、更新や変更を検知することができます。これにより、新着情報の自動収集やウェブサイトの可用性のモニタリングが可能になります。

データの収集と解析

urlfetchappを使って複数のウェブページからデータを収集し、必要な情報を抽出して集計や解析を行うことができます。例えば、商品価格の比較やニュース記事のキーワード分析などに活用できます。

urlfetchappの注意点

urlfetchappはAPIとスクレイピングに利用【GASサンプルコード有】
ルリ
ルリ

urlfetchappを使用する際はに大量のリクエストを送信する場合は、API提供元の利用制限や利用ポリシーに留意してください。

例えば1分間に1万回のリクエストをするなど、DDos攻撃と間違われることをすると逮捕された事例もあるのでご注意ください。

また、GASは1関数6分までの制約があるので、制約をはみ出ないようにプログラムを調整することが必要です。

GASサンプルプログラムのご案内

  • GASが実際にどんなふうに使われているか知りたい
  • サンプルプログラムが見たい

方に向けて、サンプルプログラムの動画とソースコード公開しています!ぜひこちらからご覧ください。

 

この記事を書いた人
ニコ

GAS、RPA導入を通じたDX案件をメインに活動をしているフリーランスエンジニアです。
要件定義~開発まで幅広く活動しています!
お仕事のご相談はお問い合わせください。

ニコをフォローする
スクリプトの基礎
ニコをフォローする
gas 入門 | google apps scriptの始め方&できること

コメント

タイトルとURLをコピーしました