Bagikan melalui


Pemecahan masalah konektor Web

Apa perbedaan antara Web.Contents, Web.BrowserContents, dan Web.Page?

Web.Contents

  • Web.Contents digunakan untuk mengambil konten web yang tidak perlu diakses melalui browser, seperti file CSV, hasil JSON API, dan sebagainya.
  • Ini mendukung berbagai opsi autentikasi terluas.
  • Ini dapat digunakan di lingkungan cloud, seperti Power Query Online, tanpa gateway.

Web.Page

  • Web.Page adalah fungsi warisan untuk mengambil konten web yang perlu diakses melalui browser, seperti halaman HTML.
  • Ini dibangun di Internet Explorer. Karena persyaratan ini, itu diganti di UI dengan Web.BrowserContents. Namun, Web.Page akan terus tersedia di tingkat mesin untuk kompatibilitas mundur.
  • Gateway diperlukan untuk menggunakannya di lingkungan cloud, seperti Power Query Online.

Web.BrowserContents

  • Web.BrowserContents adalah fungsi yang diperbarui untuk mengambil konten web yang perlu diakses melalui browser, seperti halaman HTML.
  • Di UI, Web.BrowserContents mengganti Web.Page, karena Web.Page didasarkan pada Internet Explorer.
  • Web.BrowserContents awalnya dibangun di atas Chromium, tetapi sekarang menggunakan kontrol WebView2 Microsoft Edge.
  • Gateway diperlukan untuk menggunakannya di lingkungan cloud, seperti Power Query Online.

Tabel berikut ini meringkas perbedaannya.

Web.Contents Web.Page Web.BrowserContents
Konten non-browser (file .txt/.csv, JSON, dan sebagainya) x
Konten browser (HTML) x x
Jenis Autentikasi Didukung Anonim
Windows
Dasar
API Web
Akun Organisasi
Anonim
Windows (hanya kredensial pengguna saat ini)
API Web
Anonim
Windows
Dasar
API Web
Memerlukan gateway di host cloud N Y Y
Saat ini dihasilkan oleh Semua host Excel dan Power Query Online Power BI Desktop
Dibangun di .NET Internet Explorer Kontrol WebView2 Microsoft Edge

Catatan

Permintaan POST hanya dapat dibuat secara anonim saat menggunakan Web.Contents.

Peringatan "Browser ini tidak lagi didukung" di Tampilan Web

Saat mengimpor halaman web, Anda bisa menampilkan pratinjau halaman menggunakan tab Tampilan Web dalam dialog navigator Power Query. Pratinjau ini terkadang menampilkan peringatan seperti "Browser ini tidak lagi didukung". Ketika ini terjadi, biasanya karena Tampilan Web saat ini merender pratinjau Tampilan Web menggunakan Internet Explorer, yang tidak lagi didukung oleh beberapa situs web. Namun, ini hanya memengaruhi Tampilan Web dan tidak memengaruhi konektor web itu sendiri. Selama Anda menggunakan konektor berdasarkan Web.Contents atau Web.BrowserContents (dan tidak Web.Page), Anda dapat mengabaikan peringatan tersebut dengan aman. Lihat Apa perbedaan antara Web.Contents, Web.BrowserContents, dan Web.Page? untuk informasi selengkapnya tentang berbagai konektor web dan teknologi yang mendasarnya.

Menangani halaman web dinamis

Halaman web yang memuat kontennya secara dinamis mungkin memerlukan penanganan khusus. Jika Anda melihat kesalahan sporadis dalam kueri web Anda, ada kemungkinan Anda mencoba mengakses halaman web dinamis. Salah satu contoh umum dari jenis kesalahan ini adalah:

  1. Anda me-refresh kueri yang tersambung ke situs.
  2. Anda melihat kesalahan (misalnya, "kolom 'Foo' tabel tidak ditemukan").
  3. Anda me-refresh kueri lagi.
  4. Tidak ada kesalahan yang terjadi.

Masalah semacam ini biasanya disebabkan oleh waktu. Halaman yang memuat kontennya secara dinamis terkadang tidak konsisten karena konten dapat berubah setelah browser mempertimbangkan untuk memuat selesai. Terkadang konektor web mengunduh HTML setelah semua konten dinamis dimuat. Di lain waktu perubahan masih berlangsung ketika mengunduh HTML, yang mengarah ke kesalahan sporadis.

Solusinya adalah menggunakan WaitFor opsi Web.BrowserContents, yang menunjukkan pemilih atau lamanya waktu yang harus ditunggu sebelum mengunduh HTML.

Bagaimana Anda bisa mengetahui apakah halaman bersifat dinamis? Biasanya cukup sederhana. Buka halaman di browser dan tonton dimuat. Jika konten segera muncul, ini adalah halaman HTML biasa. Jika muncul secara dinamis atau berubah dari waktu ke waktu, itu adalah halaman dinamis.

Menggunakan gateway dengan konektor Web

Web.BrowserContents dan Web.Page memerlukan penggunaan gateway data lokal saat diterbitkan ke layanan cloud, seperti model semantik Power BI atau aliran data, atau aliran data Power Apps. (Saat ini, Dynamics 365 Customer Insights tidak mendukung penggunaan gateway.)

Jika Anda menggunakan Web.Page dan menerima Please specify how to connect kesalahan, pastikan Anda telah menginstal Internet Explorer 10 atau yang lebih baru pada komputer yang menghosting gateway data lokal Anda.

Jika Anda menggunakan Web.BrowserContents dan menerima We were unable to find the WebView2 runtime kesalahan, pastikan Anda memiliki runtime WebView2 yang diinstal pada komputer yang menghosting gateway data lokal Anda. Pesan kesalahan harus menyediakan tautan ke penginstal runtime WebView2. Jika Anda telah menginstal runtime tetapi masih melihat kesalahan, pastikan bahwa akun layanan gateway (biasanya PBIEgwService) memiliki akses ke lokasi penginstalan runtime WebView2 (misalnya, C:\Program Files (x86)\Microsoft\EdgeWebView).

Kesalahan "Kami mengalami kesalahan saat menginisialisasi browser web" saat menggunakan Web.BrowserContents

Kesalahan ini dapat terjadi jika proses memanggil Web.BrowserContents berjalan dalam mode yang ditinggikan, karena WebView2 saat ini tidak mendukung berjalan dengan hak istimewa administrator.

Menggunakan Web.Page alih-alih Web.BrowserContents

Dalam kasus di mana Anda perlu menggunakan Web.Page alih-alih Web.BrowserContents, Anda masih dapat menggunakan Web.Pagesecara manual .

Di Power BI Desktop, Anda bisa menggunakan fungsi yang lebih Web.Page lama dengan menghapus opsi Aktifkan inferensi tabel web:

  1. Di bawah tab File, pilih Opsi dan opsi pengaturan>.

  2. Di bagian Global, pilih Editor Power Query.

  3. Kosongkan opsi Aktifkan inferensi tabel web, lalu pilih OK.

  4. Mulai Power BI Desktop.

    Catatan

    Saat ini, Anda tidak dapat menonaktifkan penggunaan Web.BrowserContents di Power BI Desktop yang dioptimalkan untuk Server Laporan Power BI.

Anda juga bisa mendapatkan salinan Web.Page kueri dari Excel. Untuk menyalin kode dari Excel:

  1. Pilih Dari Web dari tab Data .
  2. Masukkan alamat dalam kotak dialog Dari Web , lalu pilih OK.
  3. Di Navigator, pilih data yang ingin Anda muat, lalu pilih Transformasi Data.
  4. Di tab Beranda Power Query, pilih Editor Lanjutan.
  5. Di Editor Lanjutan, salin rumus M.
  6. Di aplikasi yang menggunakan Web.BrowserContents, pilih konektor Kueri Kosong.
  7. Jika Anda menyalin ke Power BI Desktop:
    1. Di tab Beranda, pilih Editor Lanjutan.
    2. Tempelkan kueri yang disalin Web.Page di editor, lalu pilih Selesai.
  8. Jika Anda menyalin ke Power Query Online:
    1. Di Kueri Kosong, tempelkan kueri yang disalin Web.Page dalam kueri kosong.
    2. Pilih gateway data lokal untuk digunakan.
    3. Pilih Selanjutnya.

Anda juga bisa memasukkan kode berikut secara manual ke dalam kueri kosong. Pastikan Anda memasukkan alamat halaman web yang ingin Anda muat.

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

Menangkap permintaan web dan pencabutan sertifikat

Kami telah memperkuat keamanan koneksi web untuk melindungi data Anda. Namun, ini berarti bahwa skenario tertentu, seperti menangkap permintaan web dengan Fiddler, tidak akan lagi berfungsi secara default. Untuk mengaktifkan skenario tersebut:

  1. Buka Power BI Desktop.

  2. Di bawah tab File, pilih Opsi dan opsi pengaturan>.

  3. Di Opsi, di bawah Keamanan Global>, kosongkan centang Aktifkan pencabutan sertifikat.

    Cuplikan layar kotak centang Aktifkan pencabutan sertifikat dipilih.

  4. Pilih OK.

  5. Mulai Power BI Desktop.

Penting

Ketahuilah bahwa menghapus centang Aktifkan pemeriksaan pencabutan sertifikat akan membuat koneksi web kurang aman.

Untuk mengatur skenario ini dalam Kebijakan Grup, gunakan kunci "DisableCertificateRevocationCheck" di bawah jalur registri "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI Desktop". Mengatur "DisableCertificateRevocationCheck" ke 0 akan selalu mengaktifkan pemeriksaan (menghentikan Fiddler dan perangkat lunak serupa dari bekerja) dan mengatur "DisableCertificateRevocationCheck" ke 1 akan selalu menonaktifkan pemeriksaan (mengaktifkan Fiddler dan perangkat lunak serupa).

Mengubah metode autentikasi

Dalam beberapa kasus, Anda mungkin perlu mengubah metode autentikasi yang Anda gunakan untuk mengakses situs tertentu. Jika perubahan ini diperlukan, buka Mengubah metode autentikasi.

Mengautentikasi ke layanan arbitrer

Beberapa layanan mendukung kemampuan konektor Web untuk mengautentikasi dengan autentikasi ID OAuth/Microsoft Entra di luar kotak. Namun, ini tidak akan berfungsi dalam banyak kasus.

Saat mencoba mengautentikasi, jika Anda melihat kesalahan berikut:

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

Kesalahan saat menyambungkan ke titik akhir yang tidak mendukung OAuth dengan konektor web.

Hubungi pemilik layanan. Mereka perlu mengubah konfigurasi autentikasi atau membangun konektor kustom.

Konektor web menggunakan HTTP 1.1 untuk berkomunikasi

Konektor Web Power Query berkomunikasi dengan sumber data menggunakan HTTP 1.1. Jika sumber data Anda mengharapkan untuk berkomunikasi menggunakan HTTP 1.0, Anda mungkin menerima kesalahan, seperti 500 Internal Server Error.

Tidak dimungkinkan untuk mengalihkan Power Query untuk menggunakan HTTP 1.0. Power Query selalu mengirim Expect:100-continue ketika ada isi untuk menghindari melewati payload yang mungkin besar ketika panggilan awal itu sendiri mungkin gagal (misalnya, karena kurangnya izin). Saat ini, perilaku ini tidak dapat diubah.

Koneksi ke Microsoft Graph

Power Query saat ini tidak mendukung menyambungkan ke REST API Microsoft Graph. Informasi selengkapnya: Kurangnya Dukungan untuk Microsoft Graph di Power Query

Lihat juga