ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

websave

RESTful Web サービスからコンテンツをファイルに保存

構文

outfilename = websave(filename,url)
outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN)
outfilename = websave(___,options)

説明

outfilename = websave(filename,url) は、url で指定された Web サービスからのコンテンツを保存して、filename に書き込みます。関数 websave は、filename の絶対パスを outfilename として返します。

Web サービスは、JSON、XML、イメージ、テキストなどのインターネット メディア タイプ形式でデータを返すRESTfulを提供します。

outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) は、1 つ以上の名前と値のペアの引数で指定されるクエリ パラメーターを url に追加します。クエリ パラメーターは Web サービスによって定義されます。

outfilename = websave(___,options)weboptions オブジェクト options で指定されたその他の HTTP 要求オプションを追加します。この構文では、前述の構文の入力引数のいずれかを使用できます。

websave は HTTP GET メソッドと HTTP POST メソッドをサポートします。HTTP POST 要求を送るには、optionsRequestMethod プロパティを 'post' に指定します。多くの Web サービスではデータの要求メソッドとして GET と POST の両方が提供されます。

すべて折りたたむ

Hubble Heritage Web サイトから木星のイメージを保存します。

url = 'http://heritage.stsci.edu/2007/14/images/p0714aa.jpg';
filename = 'jupiter_aurora.jpg';
outfilename = websave(filename,url)
outfilename =

C:\Libraries\Documents\jupiter_aurora.jpg

websave は、filename に別の拡張子を指定している場合でも、Hubble Web サービスで指定されているように JPEG ファイルとしてイメージを保存します (木星のイメージ。NASA、ESA および Hubble Heritage Team (STScI/AURA) 提供。利用条件については Hubble Heritage Information Center を参照)。

Simulink® という語を含む、過去 7 日間にアップロードされたファイルを File Exchange で検索し、その検索結果を表示します。

url = 'https://www.mathworks.com/matlabcentral/fileexchange/';
filename = 'simulink_search.html';
outfilename = websave(filename,url,'term','simulink','duration',7)
outfilename =

C:\Libraries\Documents\simulink_search.html

Web ブラウザーで HTML ファイルを表示します。

web(outfilename)

NGDC (国立地球物理データ センター) からの太陽の黒点データを ASCII ファイルに保存します。weboptions オブジェクトを使用して、接続がタイムアウトにならないようにタイムアウト値を Inf に設定します。

api = 'http://www.ngdc.noaa.gov/stp/space-weather/';
url = [api 'solar-data/solar-indices/sunspot-numbers/' ...
       'american/lists/list_aavso-arssn_yearly.txt'];
filename = 'sunspots_annual.txt';
options = weboptions('Timeout',Inf);
outfilename = websave(filename,url,options)
outfilename =

C:\Libraries\Documents\sunspots_annual.txt

集計データと Web サービスは NGDC から提供されています。太陽の黒点データはアメリカ変光星観測者協会 (AAVSO) から提供されています (最初の公開は、AAVSO Sunspot Counts: 1943-2013, AAVSO Solar Section (R. Howe, Chair) です) (NGDC の利用条件については NGDC Privacy Policy, Disclaimer, and Copyright を、AAVSO の利用条件については AAVSO Solar Section を参照してください)。

Simulink という語を含み過去 7 日間にアップロードされたファイルを File Exchange で検索する、HTTP POST 要求を送信します。検索の結果を HTML ファイルに保存します。

url = 'https://www.mathworks.com/matlabcentral/fileexchange/';
filename = 'simulink_search.html';
options = weboptions('RequestMethod','post');
outfilename = websave(filename,url,'term','simulink','duration',7,options);

多くの Web サービスでは、データ要求のメソッドとして GET に加えて POST メソッドも提供しています。

NASA Earth Observation (NEO) Web マッピング サービスから 2004 年 12 月の Blue Marble: Next Generation イメージを保存します。

datetime オブジェクトを使用して要求するイメージの日付を指定します。DFormat プロパティを指定して、形式を Web サービスで必要な形式に一致させます。

url = 'http://neowms.sci.gsfc.nasa.gov/wms/wms';
D = datetime(2004,12,01,'Format','yyyy-MM-dd');
filename = 'BlueMarble.jpg';
outfilename = websave(filename,url,'Time',D, ...
     'Service','WMS','Layers','BlueMarbleNG-TB','CRS','CRS:84', ...
     'Format','image/jpeg','Height',256,'Width',512, ...
     'BBOX','-180.0,-90.0,180.0,90.0','Version','1.3.0','Request','GetMap')
outfilename =

C:\Libraries\Documents\BlueMarble.jpg

websave が、Web サービスのクエリ パラメーターの値として使用できる形式に datetime オブジェクトを変換します。サンプルのすべての名前と値のペアは、NEO Web マッピング サービスで指定されたクエリ パラメーターを指定します。

Blue Marble: Next Generation + Topography and Bathymetry イメージは、NASA の Earth Observatory から提供されています。イメージへのアクセスおよびサービスは、NEO Web マッピング サービス (WMS) から提供されています (クレジットおよび利用条件については、NASA Earth Observations を参照してください。WMS クエリのパラメーターについては、NASA Earth Observations のサイト WMS 1.3.0 Capabilities を検索してください)。

JSON データを Web サイトから読み取り、ファイル test.txt に保存します。

uri = matlab.net.URI('http://httpbin.org/get');
websave('test.txt',uri,weboptions('ContentType','json'));

ファイルから JSON データの構造体へとテキストを読み取ります。

js = jsondecode(fileread('test.txt'))
js = 

  struct with fields:

       args: [1×1 struct]
    headers: [1×1 struct]
     origin: '144.444.4.4'
        url: 'http://httpbin.org/get'

入力引数

すべて折りたたむ

コンテンツの保存先のファイル名。文字ベクトルまたは string スカラーとして指定します。websave はコンテンツをそのまま保存します。websave は、options.ContentType および options.ContentReader のプロパティが設定されていても無視します。

例: websave('matlabcentral.html','https://www.mathworks.com/matlabcentral') は Web ページを読み取り、その HTML をファイル matlabcentral.html に保存します。

Web サービスへの URL。文字ベクトルまたは string スカラーとして指定します。Web サービスは RESTful インターフェイスを実装します。詳細については、RESTfulを参照してください。

Web サービスのクエリ パラメーター。1 つ以上の名前と値のペアの引数として指定します。QueryName 引数は、クエリ パラメーターの名前を指定しなければなりません。QueryValue 引数は、クエリ パラメーターの値を指定する文字ベクトル、string スカラー、数値、logical 値、または datetime 値でなければなりません。数値、論理値および datetime 値は配列内に含めることもできます。要求の一部として受け入れられる名前と値のペアは、Web サービスによって定義されます。

QueryValuedatetime オブジェクトとして指定する場合、その Format プロパティには Web サービスに必要な形式と一貫した値を指定しなければなりません。Format プロパティにタイム ゾーンまたはオフセットが含まれていて、datetime オブジェクトにゾーンが指定されていない場合、websave はタイム ゾーンに 'Local' を指定します。

QueryValue に配列を使用して複数の値が含まれている場合は、Web サービスによる指定どおりに配列をフォーム エンコードできるように weboptions オブジェクトの ArrayFormat プロパティを指定しなければならないことがあります。

例: websave('webread_search.html','https://www.mathworks.com/matlabcentral/fileexchange/','term','simulink') は、File Exchange にアップロードされた simulink という単語を含むファイルのリストを取得して、その検索結果を HTML ファイルに保存します。

追加の HTTP 要求オプション。weboptions オブジェクトとして指定します。weboptions のプロパティであるすべての要求オプションについては、weboptions を参照してください。

詳細

すべて折りたたむ

RESTful

REST は Web サービスの一般的なアーキテクチャ スタイルである Representational State Transfer を意味します。RESTful インターフェイスは、GET、PUT、POST、DELETE などの標準の HTTP メソッドを提供します。

ヒント

  • RESTful Web サービス機能によってサポートされていない機能については、HTTP インターフェイスを参照してください。

  • HTTP POST 要求の場合、関数 websaveapplication/x-www-form-urlencoded メディア タイプのみをサポートします。その他のインターネット メディア タイプのコンテンツの POST 要求を送信するには、webwrite を使用してください。

R2014b で導入