Share via


針對 Web 連接器進行疑難解答

Web.Contents、Web.BrowserContents 和 Web.Page 有何差異?

Web.Contents

  • Web.Contents 用於擷取不需要透過瀏覽器存取的Web內容,例如 CSV 檔案、JSON API 結果等等。
  • 它支援各種不同的驗證選項。
  • 它可以用於雲端環境,例如 Power Query Online,而不需閘道。

Web.Page

  • Web.Page 是用來擷取需要透過瀏覽器存取之Web內容的舊版函式,例如HTML頁面。
  • 其建置在 Internet Explorer 上。 由於這項需求,UI 中會將其取代為 Web.BrowserContents。 不過, Web.Page 將繼續在引擎層級取得回溯相容性。
  • 需要閘道才能在雲端環境中使用它,例如 Power Query Online。

Web.BrowserContents

  • Web.BrowserContents 是一個更新的函式,可用來擷取需要透過瀏覽器存取的Web內容,例如HTML頁面。
  • 在UI中, Web.BrowserContents 會取代 Web.Page,因為 Web.Page 是以Internet Explorer為基礎。
  • Web.BrowserContents 最初是以 Chromium 為基礎建置,但現在會使用 Microsoft Edge 的 WebView2 控制件。
  • 需要閘道才能在雲端環境中使用它,例如 Power Query Online。

下表摘要說明差異。

Web.Contents Web.Page Web.BrowserContents
非瀏覽器內容 (.txt/.csv 檔案、JSON 等) x
瀏覽器內容 (HTML) x x
支援的驗證類型 匿名
Windows
基本
Web API
組織帳戶
匿名
Windows (僅限目前使用者的認證)
Web API
匿名
Windows
基本
Web API
需要雲端主機中的閘道 Y
目前產生的 所有主機 Excel 和 Power Query Online Power BI Desktop
以建置為基礎 .NET Internet Explorer Microsoft Edge 的 WebView2 控件

注意

POST 要求只能在使用 Web.Contents時匿名提出。

Web 檢視中的警告「不再支援此瀏覽器」

匯入網頁時,您可以使用Power Query 導覽器對話框中的 [Web 檢視] 索引標籤來檢視頁面的預覽。 此預覽有時可能會顯示警告,例如「不再支援此瀏覽器」。 發生這種情況時,通常是因為 Web 檢視目前會使用 Internet Explorer 轉譯 Web 檢視預覽,而某些網站不再支援此預覽。 不過,這隻會影響 Web 檢視,而且不會影響 Web 連接器本身。 只要您使用以 Web.ContentsWeb.BrowserContents 為基礎的連接器(而不是 Web.Page),您就可以安全地忽略這類警告。 如需不同 Web 連接器及其基礎技術的詳細資訊,請參閱 Web.Contents、Web.BrowserContents 和 Web.Page 有何差異?

處理動態網頁

動態載入其內容的網頁可能需要特殊處理。 如果您在 Web 查詢中發現零星錯誤,您可能會嘗試存取動態網頁。 這種錯誤的其中一個常見範例是:

  1. 您會重新整理連線至網站的查詢。
  2. 您會看到錯誤(例如,找不到資料表的數據行 'Foo')。
  3. 您再次重新整理查詢。
  4. 不會發生錯誤。

這類問題通常是因為時機所致。 動態載入其內容的頁面有時可能會不一致,因為內容可以在瀏覽器考慮載入完成之後變更。 有時候 Web 連接器會在載入所有動態內容之後下載 HTML。 其他時候,變更在下載 HTML 時仍在進行中,導致零星錯誤。

解決方案是使用 WaitFor Web.BrowserContents 的選項,指出選取器或下載 HTML 之前應該等候的時間長度。

如何判斷頁面是否為動態? 通常很簡單。 在瀏覽器中開啟頁面,並監看它載入。 如果內容立即顯示,則為一般 HTML 頁面。 如果它以動態方式出現或隨著時間變更,則為動態頁面。

搭配 Web 連接器使用閘道

當發佈至雲端服務時,Web.BrowserContentsWeb.Page 都需要使用內部部署數據閘道,例如 Power BI 語意模型或數據流,或 Power Apps 數據流。 (目前 Dynamics 365 Customer Insights 不支援使用閘道。

如果您使用 Web.Page 並收到 Please specify how to connect 錯誤,請確定您已在裝載內部部署數據閘道的電腦上安裝 Internet Explorer 10 或更新版本。

如果您使用 Web.BrowserContents 並收到 We were unable to find the WebView2 runtime 錯誤,請確定您已在裝載內部部署數據閘道的電腦上安裝 WebView2 運行時間。 錯誤訊息應該會提供 WebView2 執行時間安裝程式的連結。 如果您已安裝運行時間,但仍看到錯誤,請確定閘道服務帳戶 (通常是 PBIEgwService) 可以存取 WebView2 運行時間的安裝位置(例如 C:\Program Files (x86)\Microsoft\EdgeWebView)。

使用 Web.BrowserContents 時,「初始化網頁瀏覽器時發生錯誤」 錯誤

如果呼叫 Web.BrowserContents 的進程是以提升許可權模式執行,就會發生此錯誤,因為 WebView2 目前不支援以系統管理員許可權執行。

使用 Web.Page 而不是 Web.BrowserContents

如果您需要使用 Web.Page 而非 Web.BrowserContents,您仍然可以手動使用 Web.Page

在 Power BI Desktop 中,您可以清除 [啟用 Web 數據表推斷] 選項,以使用較舊的Web.Page函式:

  1. 在 [檔案] 索引標籤下,選取 [選項和設定>選項]。

  2. 在 [全域] 區段中,選取 [Power Query 編輯器]。

  3. 清除 [ 啟用 Web 數據表推斷 ] 選項,然後選取 [ 確定]。

  4. 重新啟動Power BI Desktop。

    注意

    目前,您無法關閉針對 Power BI 報表伺服器 優化的 Power BI Desktop 中使用 Web.BrowserContents

您也可以從 Excel 取得查詢的 Web.Page 複本。 若要從 Excel 複製程式代碼:

  1. 從 [數據] 索引標籤選取 [從 Web]。
  2. 在 [ 從 Web ] 對話框中輸入地址,然後選取 [ 確定]。
  3. [導覽器] 中,選擇您要載入的數據,然後選取 [ 轉換數據]。
  4. 在 Power Query 的 [首頁] 索引標籤中,選取 [進階編輯器]。
  5. 進階編輯器 中,複製 M 公式。
  6. 在使用 Web.BrowserContents的應用程式中,選取 [ 空白查詢 ] 連接器。
  7. 如果您要複製到 Power BI Desktop:
    1. 在 [首頁] 索引標籤中,選取 [進階編輯器]。
    2. 在編輯器中貼上複製 Web.Page 的查詢,然後選取 [ 完成]。
  8. 如果您要複製到 Power Query Online:
    1. 在空白 查詢中,將複製 Web.Page 的查詢貼到空白查詢中。
    2. 選取要使用的內部部署數據閘道。
    3. 選取 [下一步]。

您也可以手動將下列程式代碼輸入空白查詢。 請確定您輸入要載入之網頁的位址。

let
  Source = Web.Page(Web.Contents("<your address here>")),
  Navigation = Source{0}[Data]
in
  Navigation

擷取 Web 要求和證書撤銷

我們已加強 Web 連線的安全性,以保護您的數據。 不過,這表示某些案例,例如使用 Fiddler 擷取 Web 要求,預設將無法再運作。 若要啟用這些案例:

  1. 開啟 Power BI Desktop。

  2. 在 [檔案] 索引標籤下,選取 [選項和設定>選項]。

  3. [選項] 的 [全域>安全性] 底下,取消核取 [啟用證書吊銷檢查]。

    已選取 [啟用證書撤銷] 複選框的螢幕快照。

  4. 選取 [確定]。

  5. 重新啟動Power BI Desktop。

重要

請注意,取消核取 [ 啟用證書吊銷檢查 ] 會使 Web 連線更安全。

若要在組策略中設定此案例,請使用登錄路徑 「Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft\Microsoft Power BI Desktop」 下的 “DisableCertificateRevocationCheck” 機碼。 將 「DisableCertificateRevocationCheck」 設定為 0 一律會啟用檢查(停止 Fiddler 和類似的軟體無法運作),並將 「DisableCertificateRevocationCheck」 設定為 1 一律會停用檢查(啟用 Fiddler 和類似的軟體)。

變更驗證方法

在某些情況下,您可能需要變更您用來存取特定網站的驗證方法。 如果需要這項變更,請移至 變更驗證方法

驗證任意服務

某些服務支援 Web 連接器現用 OAuth/Microsoft Entra ID 驗證進行驗證的能力。 不過,在大部分情況下,這無法運作。

試著驗證時,如果您看到下列錯誤:

We were unable to connect because this credential type isn’t supported for this resource. Please choose another credential type.

連線器 OAuth 的端點時發生錯誤。

請連絡服務擁有者。 他們要麼需要變更驗證組態,要麼建置自定義連接器。

Web 連接器會使用 HTTP 1.1 進行通訊

Power Query Web 連接器會使用 HTTP 1.1 與數據源通訊。 如果您的資料來源預期使用 HTTP 1.0 進行通訊,您可能會收到錯誤,例如 500 Internal Server Error

您無法將 Power Query 切換為使用 HTTP 1.0。 Power Query 一律會在有主體時傳送 Expect:100-continue ,以避免在初始呼叫本身可能會失敗時傳遞可能較大的承載(例如,由於許可權不足)。 目前無法變更此行為。

連線 至 Microsoft Graph

Power Query 目前不支持連線到 Microsoft Graph REST API。 詳細資訊: Power Query 中缺少 Microsoft Graph 的支援

另請參閱