Web

まとめ

Item 説明
リリース状態 一般公開
製品 Power BI (データセット)
Power BI (データフロー)
Power Apps (データフロー)
Excel
Dynamics 365 Customer Insights
サポートされている認証の種類 Anonymous
Windows
Basic
Web API
組織アカウント
関数リファレンス ドキュメント Web.Page
Web.BrowserContents

注意

一部の機能については、ある製品には含まれるが、他の製品には含まれない場合があります。デプロイ スケジュールやホスト固有の機能であることがその理由です。

前提条件

  • Internet Explorer 10

サポートされる機能

  • Basic
  • 詳細設定
    • URL パーツ
    • コマンド タイムアウト
    • HTTP 要求ヘッダー パラメーター

Power Query Desktop を使用して Web データを読み込む

Power Query Desktop を使用して Web サイトからデータを読み込むには、次のようにします。

  1. Power BI で [データの取得] > [Web] を選択するか、Excel の [データ] リボンで [Web から] を選択します。

  2. [基本] ボタンを選択し、テキスト ボックスに URL アドレスを入力します。 たとえば、https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States と入力します。 [OK] をクリックします。

    テキスト ファイルの選択。

    入力した URL アドレスが無効である場合は、警告アイコンが表示されます。 警告アイコンは [URL] テキスト ボックスの横に表示されます。

    Web サイトに接続する前に、より高度な URL を作成する必要がある場合は、「高度な URL を使用して Web データを読み込む」に移動します。

  3. この Web サイトで使用する認証方法を選択します。 この例では、 [匿名] を選択します。 次に、これらの設定に適用するレベルを選択します。このケースでは、 https://en.wikipedia.org/ にします。 次に、 [接続](Connect) を選択します。

    Web 資格情報の選択。

    このコネクタで使用できる認証方法は次のとおりです。

    • [匿名] : Web ページに資格情報が必要ない場合は、この認証方法を選択します。

    • [Windows] : Web ページに Windows の資格情報が必要な場合は、この認証方法を選択します。

    • [基本] : Web ページに基本的なユーザー名とパスワードが必要な場合は、この認証方法を選択します。

    • [Web API] : 接続している Web リソースで、認証目的で API キーが使用される場合は、この方法を選択します。

    • [組織アカウント] : Web ページに組織アカウントの資格情報が必要な場合は、この認証方法を選択します。

    注意

    レポートを Power BI サービスにアップロードする場合は、認証方法として [匿名][Windows][基本] のみを使用できます。

    認証方法に選択するレベルによって、URL のどの部分に認証方法が適用されるかが決まります。 最上位の Web アドレスを選択した場合、ここで選択した認証方法が、その URL アドレスまたはそのアドレス内のサブアドレスに使用されます。 ただし、サブアドレスごとに異なる認証方法が必要になる可能性があるため、最上位の URL アドレスを特定の認証方法に設定しないほうがよい場合があります。 たとえば、1 つの SharePoint サイトの 2 つの別個のフォルダーにアクセスし、それぞれ異なる Microsoft アカウントを使用してアクセスする必要がある場合などです。

    一度特定の Web サイト アドレスの認証方法を設定したら、その URL アドレスまたはサブアドレスの認証方法を再度選択する必要はありません。 たとえば、このダイアログでアドレスとして https://en.wikipedia.org/ を選択した場合、このアドレスで始まる Web ページで、認証方法を再度選択することは求められません。

    注意

    後で認証方法を変更する必要がある場合は、「認証方法の変更」に移動します。

  4. [ナビゲーター] ダイアログでテーブルを選択すると、Power Query エディターで [データの変換] を選択してデータを変換することも、 [読み込み] を選択してデータを読み込むこともできます。

    Web テーブルの選択。

    [ナビゲーター] ダイアログの右側には、テーブルのコンテンツが表示されます。それらを選択して変換や読み込みを行うことができます。 どのテーブルに目的のデータが含まれているか不明な場合は、 [Web ビュー] タブを選択できます。Web ビューを使用すると、その Web ページの全コンテンツを表示して、そのサイトで検出された各テーブルを強調表示することができます。 強調表示されているテーブルの上にあるチェック ボックスをオンにすると、そのテーブルからデータを取得できます。

    [ナビゲーター] ダイアログの左下にある [例を使用してテーブルを追加] ボタンを選択することもできます。 この選択により、Web ページのコンテンツをプレビューし、抽出するデータのサンプル値を入力できる、対話型ウィンドウが表示されます。 この機能の使用について詳しくは、「例を提供して Web ページ データを取得する」をご覧ください。

Power Query Online を使用して Web データを読み込む

Power Query Online を使用して Web サイトからデータを読み込むには、次のようにします。

  1. [データの取得] ダイアログ ボックスで、 [Web ページ] または [Web API] のいずれかを選択します。

    Web ページ コネクタか Web API コネクタを選択します。

    ほとんどのケースで、Web ページ コネクタを選択することをお勧めします。 セキュリティ上の理由から、このコネクタでオンプレミス データ ゲートウェイを使用する必要があります。 Web ページ コネクタにはゲートウェイが必要です。HTML ページはブラウザー コントロールを使用して取得され、セキュリティ上の問題が発生する可能性があるためです。 Web API コネクタではブラウザー コントロールを使用しないので、この懸念はありません。

    場合によっては、API または Web に格納されているファイルを指し示す URL を使用したほうがよい場合があります。 そのようなシナリオで、Web API コネクタ (またはファイル固有のコネクタ) を使用すると、オンプレミスのデータ ゲートウェイを使用することなく先に進むことができます。

    また、URL がファイルを指し示す場合は、Web ページ コネクタではなく、特定のファイル コネクタを使用してください。

  2. テキスト ボックスに URL アドレスを入力します。 この例では、「https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States」と入力します。

    Web ページの URL を入力します。

  3. オンプレミス データ ゲートウェイの名前を選択します。

    オンプレミス データ ゲートウェイを入力します。

  4. Web ページへの接続に使用する認証方法を選択します。

    認証方法を選択します。

    このコネクタで使用できる認証方法は次のとおりです。

    • [匿名] : Web ページに資格情報が必要ない場合は、この認証方法を選択します。

    • [Windows] : Web ページに Windows の資格情報が必要な場合は、この認証方法を選択します。

    • [基本] : Web ページに基本的なユーザー名とパスワードが必要な場合は、この認証方法を選択します。

    • [組織アカウント] : Web ページに組織アカウントの資格情報が必要な場合は、この認証方法を選択します。

    認証方法を選択したら、 [次へ] を選択します。

  5. [ナビゲーター] ダイアログでテーブルを選択してから、Power Query エディターで [データの変換] を選択してデータを変換することができます。

    Web ページの状態を示す [ナビゲーター] ダイアログ ボックス。

高度な URL を使用して Web データを読み込む

Power Query Desktop で [データの取得] > [Web から] を選択するときは、ほとんどのケースで [基本] 設定に URL を入力します。 ただし、場合によっては、別個のパーツから URL を組み立てたり、接続にタイムアウトを設定したり、個別の URL ヘッダー データを指定したりする必要があります。 この場合は、 [Web から] ダイアログ ボックスで [高度] オプションを選択します。

Web の高度な URL アセンブリ。

ダイアログの [URL パーツ] セクションを使用して、データの取得に使用する URL を組み立てます。 [URL パーツ] セクションの URL の最初の部分は通常、その URI のスキーム、権限、パス (http://contoso.com/products/ など) で構成されます。 2 つ目のテキスト ボックスには、Web サイトに提供された情報をフィルター処理するために使用するクエリやフラグメントを含めることができます。 複数のパーツを追加する必要がある場合は、 [パーツの追加] を選択して別の URL フラグメント テキスト ボックスを追加します。 URL の各部分を入力すると、 [OK] を選択すると使用される完全な URL が、 [URL プレビュー] ボックスに表示されます。

POST 要求でデータが処理されるのにかかる時間に応じて、その要求が Web サイトに接続された状態を継続する時間を延長する必要がある場合があります。 POST と GET の両方の既定のタイムアウトは 100 秒です。 このタイムアウト値が短すぎる場合は、 [分単位のコマンド タイムアウト (省略可能)] を使用して、接続された状態を継続する分数を延長することができます。

また、 [HTTP 要求ヘッダー パラメーター (省略可能)] ドロップダウン ボックスを使用して、Web サイトに送信する POST に特定の要求ヘッダーを追加することもできます。 選択できる要求ヘッダーの説明を次の表に示します。

要求ヘッダー 説明
Accept 受け入れ可能な応答メディアの種類を指定します。
Accept-Charset テキスト形式の応答コンテンツで受け入れ可能な文字セットを示します。
Accept-Encoding 応答で受け入れ可能な応答コンテンツのエンコードを示します。
Accept-Language 応答で優先される自然言語のセットを示します。
Cache-Control クライアント要求とサーバー応答で、ディレクティブによって指定されるキャッシュ ポリシーを示します。
Content-Type コンテンツのメディアの種類を示します。
If-Modified-Since このフィールドで指定した日付以降に Web コンテンツが変更されたかどうかを条件付きで判定します。 コンテンツが変更されていない場合は、状態コードが 304 のヘッダーのみがサーバーから返されます。 コンテンツが変更された場合は、要求されたリソースと状態コード 200 がサーバーから返されます。
Prefer 特定のサーバーの動作がクライアントで望まれるが、要求を正常に完了するためには必須ではないことを示します。
Range 選択された表現データの 1 つまたは複数の部分範囲を指定します。
Referer ターゲット URI が取得されたリソースの URI 参照を指定します。

Web からファイルをインポートする

通常、Power Query Desktop でローカルのオンプレミス ファイルをインポートするときは、特定のファイルタイプ コネクタを使用してそのファイルをインポートします。たとえば、JSON ファイルをインポートする場合は JSON コネクタ、CSV ファイルをインポートする場合は CSV コネクタを使用します。 ただし、Power Query Desktop を使用していて、インポートするファイルが Web 上にある場合は、Web コネクタを使用してそのファイルをインポートする必要があります。 ローカルの場合と同様に、コネクタで既定で読み込まれるテーブルが表示されます。このテーブルは、後で読み込みまたは変換を行うことができます。

Web コネクタでは、次のファイルの種類をサポートしています。

たとえば、次の手順を使用して、https://contoso.com/products の Web サイトに JSON ファイルをインポートできます。

  1. [データの取得] ダイアログ ボックスで、Web コネクタを選択します。

  2. [基本] ボタンを選択し、次のように [URL] ボックスにアドレスを入力します。

    http://contoso.com/products/Example_JSON.json

    Web から JSON ファイルをインポートします。

  3. [OK] を選択します。

  4. この URL に初めてアクセスする場合は、認証の種類として [匿名] を選択してから、 [接続] を選択します。

  5. これで、JSON ファイルからインポートされたデータが入力された状態で Power Query エディターが開きます。 Power Query エディターで [表示] タブを選択し、 [数式バー] を選択して、エディターで数式バーをオンにします。

    数式バーを開きます。

    ご覧のように、指定した URL から Web コンテンツが Web コネクタによって返され、その URL で指定された適切なドキュメントの種類 (この例では Json.Document) で Web コンテンツが自動的にラップされます。

動的 Web ページの処理

コンテンツを動的に読み込む Web ページでは、特別な処理が必要になる場合があります。 Web クエリで散発的なエラーが発生している場合は、動的な Web ページにアクセスしようとしている可能性があります。 この種のエラーの一般的な例を次に示します。

  1. サイトを最新の状態に更新します。
  2. エラーが表示されます (例: "テーブルの列 'Foo' が見つかりませんでした")。
  3. 再度サイトを最新の状態に更新します。
  4. エラーは発生しません。

この種の問題は通常、タイミングが原因です。 コンテンツを動的に読み込むページは、ブラウザーで読み込みが完了したと見なされた後にコンテンツが変更される可能性があるため、一貫性がない場合があります。 すべての動的コンテンツが読み込まれた後に、Web.BrowserContents によって HTML がダウンロードされることがあります。 他にも、HTML をダウンロードするときに変更がまだ進行中の場合は、散発的なエラーの発生につながります。

解決策として、WaitFor オプションを Web.BrowserContents に渡します。これは、セレクターまたは HTML をダウンロードする前に待機する必要がある時間の長さを示します。

ページが動的であるかどうかを確認するにはどうすればよいのでしょうか。 通常は非常に簡単です。 ブラウザーでページを開き、読み込まれるのを監視します。 コンテンツがすぐに表示される場合は、通常の HTML ページです。 動的に表示される場合、または時間の経過と共に変化する場合は、動的ページです。

関連項目