Condividi tramite


Risoluzione dei problemi relativi al connettore Web

Qual è la differenza tra Web.Contents, Web.BrowserContents e Web.Page?

Web.Contents

  • Web.Contents viene usato per recuperare contenuto Web a cui non è necessario accedere tramite un browser, ad esempio file CSV, risultati dell'API JSON e così via.
  • Supporta la più ampia gamma di opzioni di autenticazione.
  • Può essere usato in ambienti cloud, ad esempio Power Query Online, senza un gateway.

Web.Page

  • Web.Page è una funzione legacy per il recupero di contenuto Web a cui è necessario accedere tramite un browser, ad esempio pagine HTML.
  • Si basa su Internet Explorer. A causa di questo requisito, viene sostituito nell'interfaccia utente con Web.BrowserContents. Tuttavia, Web.Page continuerà a essere disponibile a livello di motore per garantire la compatibilità con le versioni precedenti.
  • Per usarlo in ambienti cloud, ad esempio Power Query Online, è necessario un gateway.

Web.BrowserContents

  • Web.BrowserContents è una funzione aggiornata per il recupero di contenuto Web a cui è necessario accedere tramite un browser, ad esempio pagine HTML.
  • Nell'interfaccia utente, Web.BrowserContents sostituisce Web.Page, perché Web.Page è basato su Internet Explorer.
  • Web.BrowserContents è stato inizialmente costruito su Chromium, ma ora usa il controllo WebView2 di Microsoft Edge.
  • Per usarlo in ambienti cloud, ad esempio Power Query Online, è necessario un gateway.

Nella seguente tabella vengono riepilogate le differenze.

Web.Contents Web.Page Web.BrowserContents
Contenuto non browser (file .txt/.csv, JSON e così via) x
Contenuto del browser (HTML) x x
Tipi di autenticazione supportati Anonimo
Windows
Di base
API Web
Account dell'organizzazione
Anonimo
Windows (solo credenziali dell'utente corrente)
API Web
Anonimo
Windows
Di base
API Web
Richiede un gateway negli host cloud N S S
Attualmente generato da Tutti gli host Excel e Power Query Online Power BI Desktop
Basato su .NET Internet Explorer Controllo WebView2 di Microsoft Edge

Nota

Le richieste POST possono essere effettuate in modo anonimo solo quando si usa Web.Contents.

Avvisi "Questo browser non è più supportato" nella visualizzazione Web

Quando si importa una pagina Web, è possibile visualizzare un'anteprima della pagina usando la scheda Visualizzazione Web nella finestra di dialogo strumento di navigazione di Power Query. Questa anteprima può talvolta visualizzare un avviso, ad esempio "Questo browser non è più supportato". In questo caso, in genere la visualizzazione Web esegue il rendering dell'anteprima della visualizzazione Web tramite Internet Explorer, che non è più supportata da alcuni siti Web. Tuttavia, ciò influisce solo sulla visualizzazione Web e non influisce sul connettore Web stesso. Se si usano i connettori basati su Web.Contents o Web.BrowserContents (e non Web.Page), è possibile ignorare tali avvisi in modo sicuro. Per altre informazioni sui diversi connettori Web e sulle relative tecnologie sottostanti, vedere Qual è la differenza tra Web.Contents, Web.BrowserContents e Web.Page?

Gestione delle pagine Web dinamiche

Le pagine Web che caricano il contenuto in modo dinamico potrebbero richiedere una gestione speciale. Se si notano errori sporadici nelle query Web, è possibile che si stia provando ad accedere a una pagina Web dinamica. Un esempio comune di questo tipo di errore è:

  1. Si aggiorna una query che si connette al sito.
  2. Viene visualizzato un errore (ad esempio, "la colonna 'Foo' della tabella non è stata trovata").
  3. Si aggiorna di nuovo la query.
  4. Non si verifica alcun errore.

Questi tipi di problemi sono in genere dovuti a tempi. Le pagine che caricano il contenuto in modo dinamico possono talvolta non essere coerenti perché il contenuto può cambiare dopo il completamento del caricamento del browser. A volte il connettore Web scarica il codice HTML dopo il caricamento di tutto il contenuto dinamico. Altre volte le modifiche sono ancora in corso quando scarica il codice HTML, causando errori sporadici.

La soluzione consiste nell'usare l'opzione WaitFor Web.BrowserContents, che indica un selettore o un periodo di tempo che deve essere aspettato prima di scaricare il codice HTML.

Come è possibile stabilire se una pagina è dinamica? Di solito è piuttosto semplice. Aprire la pagina in un browser e controllarne il caricamento. Se il contenuto viene visualizzato immediatamente, si tratta di una normale pagina HTML. Se viene visualizzato in modo dinamico o cambia nel tempo, si tratta di una pagina dinamica.

Uso di un gateway con il connettore Web

Sia Web.BrowserContents che Web.Page richiedono l'uso di un gateway dati locale quando viene pubblicato in un servizio cloud, ad esempio modelli semantici di Power BI o flussi di dati o flussi di dati di Power Apps. Attualmente, Dynamics 365 Customer Insights non supporta l'uso di un gateway.

Se si usa Web.Page e si riceve un Please specify how to connect errore, assicurarsi di avere installato Internet Explorer 10 o versione successiva nel computer che ospita il gateway dati locale.

Se si usa Web.BrowserContents e si riceve un We were unable to find the WebView2 runtime errore, assicurarsi di avere installato il runtime WebView2 nel computer che ospita il gateway dati locale. Il messaggio di errore deve fornire un collegamento al programma di installazione del runtime WebView2. Se il runtime è stato installato ma viene comunque visualizzato l'errore, assicurarsi che l'account del servizio gateway (in genere PBIEgwService) abbia accesso al percorso di installazione del runtime WebView2, ad esempio C:\Programmi (x86)\Microsoft\EdgeWebView.

Errore "Errore durante l'inizializzazione del Web browser" durante l'uso di Web.BrowserContents

Questo errore può verificarsi se il processo che chiama Web.BrowserContents è in esecuzione in modalità con privilegi elevati, poiché WebView2 attualmente non supporta l'esecuzione con privilegi di amministratore.

Uso di Web.Page invece di Web.BrowserContents

Nei casi in cui è necessario usare Web.Page invece di Web.BrowserContents, è comunque possibile usare Web.Pagemanualmente .

In Power BI Desktop è possibile usare la funzione precedente Web.Page deselezionando l'opzione Abilita inferenza tabella Web:

  1. Nella scheda File selezionare Opzioni e impostazioni>Opzioni.

  2. Nella sezione Globale selezionare editor di Power Query.

  3. Deselezionare l'opzione Abilita inferenza tabella Web e quindi selezionare OK.

  4. Riavviare Power BI Desktop.

    Nota

    Attualmente, non è possibile disattivare l'uso di Web.BrowserContents in Power BI Desktop ottimizzato per Server di report di Power BI.

È anche possibile ottenere una copia di una Web.Page query da Excel. Per copiare il codice da Excel:

  1. Selezionare Da Web nella scheda Dati .
  2. Immettere l'indirizzo nella finestra di dialogo Da Web e quindi selezionare OK.
  3. In Strumento di navigazione scegliere i dati da caricare e quindi selezionare Trasforma dati.
  4. Nella scheda Home di Power Query selezionare Editor avanzato.
  5. Nella Editor avanzato copiare la formula M.
  6. Nell'app che usa Web.BrowserContentsselezionare il connettore Query vuota.
  7. Se si esegue la copia in Power BI Desktop:
    1. Nella scheda Home selezionare Editor avanzato.
    2. Incollare la query copiata Web.Page nell'editor e quindi selezionare Fine.
  8. Se si esegue la copia in Power Query Online:
    1. Nella query vuota incollare la query copiata Web.Page nella query vuota.
    2. Selezionare un gateway dati locale da usare.
    3. Selezionare Avanti.

È anche possibile immettere manualmente il codice seguente in una query vuota. Assicurarsi di immettere l'indirizzo della pagina Web da caricare.

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

Acquisizione di richieste Web e revoca dei certificati

Abbiamo rafforzato la sicurezza delle connessioni Web per proteggere i dati. Ciò significa tuttavia che alcuni scenari, ad esempio l'acquisizione di richieste Web con Fiddler, non funzioneranno più per impostazione predefinita. Per abilitare questi scenari:

  1. Apri Power BI Desktop.

  2. Nella scheda File selezionare Opzioni e impostazioni>Opzioni.

  3. In Opzioni, in Sicurezza globale>deselezionare Abilita controllo revoca certificati.

    Screenshot della casella di controllo Abilita revoca certificati selezionata.

  4. Seleziona OK.

  5. Riavviare Power BI Desktop.

Importante

Tenere presente che deselezionare Abilita controllo di revoca dei certificati rende le connessioni Web meno sicure.

Per impostare questo scenario in Criteri di gruppo, usare la chiave "DisableCertificateRevocationCheck" nel percorso del Registro di sistema "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI Desktop". L'impostazione di "DisableCertificateRevocationCheck" su 0 abiliterà sempre il controllo (l'arresto di Fiddler e software simile al funzionamento) e l'impostazione di "DisableCertificateRevocationCheck" su 1 disabiliterà sempre il controllo (abilitando Fiddler e software simile).

Modifica del metodo di autenticazione

In alcuni casi, potrebbe essere necessario modificare il metodo di autenticazione usato per accedere a un determinato sito. Se questa modifica è necessaria, passare a Modificare il metodo di autenticazione.

Autenticazione a servizi arbitrari

Alcuni servizi supportano la possibilità per il connettore Web di eseguire l'autenticazione con l'autenticazione OAuth/Microsoft Entra ID predefinita. Tuttavia, questo non funzionerà nella maggior parte dei casi.

Quando si tenta di eseguire l'autenticazione, se viene visualizzato l'errore seguente:

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

Errore durante la connessione a un endpoint che non supporta OAuth con il connettore Web.

Contattare il proprietario del servizio. Devono modificare la configurazione di autenticazione o compilare un connettore personalizzato.

Il connettore Web usa HTTP 1.1 per comunicare

Il connettore Web Power Query comunica con un'origine dati usando HTTP 1.1. Se l'origine dati prevede di comunicare tramite HTTP 1.0, potrebbe essere visualizzato un errore, ad esempio 500 Internal Server Error.

Non è possibile cambiare Power Query per usare HTTP 1.0. Power Query invia sempre un oggetto Expect:100-continue quando è presente un corpo per evitare di passare un payload probabilmente di grandi dimensioni quando la chiamata iniziale stessa potrebbe non riuscire ,ad esempio a causa di una mancanza di autorizzazioni. Attualmente, questo comportamento non può essere modificato.

Connessione ing in Microsoft Graph

Power Query attualmente non supporta la connessione alle API REST di Microsoft Graph. Altre informazioni: Mancanza di supporto per Microsoft Graph in Power Query

Vedi anche