Partager via


Résolution des problèmes liés au connecteur web

Quelle est la différence entre Web.Contents, Web.BrowserContents et Web.Page ?

Web.Contents

  • Web.Contents est utilisé pour récupérer du contenu web qui n’a pas besoin d’être accessible via un navigateur, comme les fichiers CSV, les résultats de l’API JSON, et ainsi de suite.
  • Il prend en charge la plus grande variété d’options d’authentification.
  • Il peut être utilisé dans des environnements cloud, tels que Power Query Online, sans passerelle.

Web.Page

  • Web.Page est une fonction héritée permettant de récupérer du contenu web qui doit être accessible via un navigateur, tel que des pages HTML.
  • Elle est basée sur Internet Explorer. En raison de cette exigence, elle est remplacée dans l’interface utilisateur par Web.BrowserContents. Toutefois, Web.Page elle continuera d’être disponible au niveau du moteur pour la compatibilité descendante.
  • Une passerelle est nécessaire pour l’utiliser dans des environnements cloud, tels que Power Query Online.

Web.BrowserContents

  • Web.BrowserContents est une fonction mise à jour permettant de récupérer du contenu web qui doit être accessible via un navigateur, tel que des pages HTML.
  • Dans l'interface utilisateur, Web.BrowserContents remplace Web.Page, car Web.Page il est basé sur Internet Explorer.
  • Web.BrowserContents a été initialement basé sur Chromium, mais il utilise à présent le contrôle WebView2 de Microsoft Edge.
  • Une passerelle est nécessaire pour l’utiliser dans des environnements cloud, tels que Power Query Online.

Le tableau suivant résume les différences.

Web.Contents Web.Page Web.BrowserContents
Contenu non-navigateur (.txt/.csv files, JSON, et ainsi de suite) x
Contenu du navigateur (HTML) x x
Types d’authentification pris en charge Anonyme
Windows
De base
API web
Compte de société
Anonyme
Windows (informations d’identification de l’utilisateur actuel uniquement)
API web
Anonyme
Windows
De base
API web
Nécessite une passerelle dans les hôtes cloud N O O
Actuellement généré par Tous les hôtes Excel et Power Query Online Power BI Desktop
Créé sur .NET Internet Explorer Contrôle WebView2 de Microsoft Edge

Remarque

Les requêtes POST ne peuvent être effectuées que de manière anonyme lorsque vous utilisez Web.Contents.

Avertissements « Ce navigateur n’est plus pris en charge » dans l’affichage Web

Lors de l’importation d’une page web, vous pouvez afficher un aperçu de la page à l’aide de l’onglet Affichage Web dans la boîte de dialogue navigateur de Power Query. Cette préversion peut parfois afficher un avertissement tel que « Ce navigateur n’est plus pris en charge ». Dans ce cas, il s’agit généralement du fait que l’affichage Web affiche actuellement la préversion de l’affichage Web à l’aide d’Internet Explorer, qui n’est plus prise en charge par certains sites web. Toutefois, cela affecte uniquement l’affichage Web et n’affecte pas le connecteur web lui-même. Tant que vous utilisez les connecteurs basés sur Web.Contents ou Web.BrowserContents (et non Web.Page), vous pouvez ignorer ces avertissements en toute sécurité. Reportez-vous à Quelle est la différence entre Web.Contents, Web.BrowserContents, et Web.Page ? pour plus d’informations sur les différents connecteurs web et leurs technologies sous-jacentes.

Gestion des pages Web dynamiques

Les pages Web qui chargent leur contenu de manière dynamique peuvent nécessiter une gestion spéciale. Si vous remarquez des erreurs sporadiques dans vos requêtes Web, il est possible que vous essayiez d’accéder à une page Web dynamique. Voici un exemple courant de ce type d’erreur :

  1. Vous actualisez une requête qui se connecte au site.
  2. Vous voyez une erreur (par exemple, « la colonne « Foo » de la table est introuvable »).
  3. Vous actualisez à nouveau la requête.
  4. Aucune erreur ne se produit.

Ces types de problèmes sont généralement dus au délai. Les pages qui chargent leur contenu de manière dynamique peuvent parfois être incohérentes, car le contenu peut changer une fois le chargement terminé. Parfois, le connecteur Web télécharge le code HTML une fois que tout le contenu dynamique a été chargé. D’autres fois, les modifications sont toujours en cours lors du téléchargement du code HTML, ce qui entraîne des erreurs sporadiques.

La solution consiste à utiliser l’option WaitFor de Web.BrowserContents, qui indique soit un sélecteur, soit une durée à attendre avant de télécharger le code HTML.

Comment savoir si une page est dynamique ? En général, c’est assez simple. Ouvrez la page dans un navigateur et regardez-la charger. Si le contenu s’affiche immédiatement, il s’agit d’une page HTML standard. S’il apparaît dynamiquement ou change au fil du temps, il s’agit d’une page dynamique.

Utilisation d’une passerelle avec le connecteur web

Both Web.BrowserContents et Web.Page nécessitent l’utilisation d’une passerelle de données locale lorsqu’elle est publiée sur un service cloud, comme les modèles sémantiques Power BI ou les flux de données, ou les flux de données Power Apps. (actuellement, Dynamics 365 Customer Insights ne prend pas en charge l’utilisation d’une passerelle).

Si vous utilisez Web.Page et recevez une Please specify how to connect erreur, assurez-vous qu’Internet Explorer 10 ou version ultérieure est installé sur l’ordinateur qui héberge votre passerelle de données locale.

Si vous utilisez Web.BrowserContents et recevez une erreur We were unable to find the WebView2 runtime, assurez-vous que le runtime WebView2 est installé sur l’ordinateur qui héberge votre passerelle de données locale. Le message d’erreur doit fournir un lien vers le programme d’installation du runtime WebView2. Si vous avez installé le runtime mais que vous voyez toujours cette erreur, vérifiez que le compte de service de passerelle (généralement PBIEgwService) a bien accès à l’emplacement d’installation du runtime WebView2 (par exemple, C:\Program Files (x86)\Microsoft\EdgeWebView).

« Nous avons rencontré une erreur lors de l’initialisation du navigateur web » lors de l’utilisation de Web.BrowserContents

Cette erreur peut se produire si le processus appelant Web.BrowserContents s’exécute en mode avec élévation de privilèges, car WebView2 ne prend actuellement pas en charge l’exécution avec des privilèges d’administrateur.

Utilisation de Web.Page au lieu de Web.BrowserContents

Dans les cas où vous devez utiliser Web.Page à la place de Web.BrowserContentsvous pouvez toujours utiliser manuellement Web.Page.

Dans Power BI Desktop, vous pouvez utiliser l’ancienne Web.Page fonction en désactivant l'option Activer l’inférence de table web :

  1. Sous l’onglet Fichier, sélectionnez Options et paramètres>Options.

  2. Dans la section Globale, sélectionnez Éditeur Power Query.

  3. Désactivez l’option Activer l’inférence de table web, puis sélectionnez OK.

  4. Redémarrez Power BI Desktop.

    Remarque

    Actuellement, vous ne pouvez pas désactiver l’utilisation de Web.BrowserContents dabs Power BI Desktop optimisé pour Power BI Report Server.

Vous pouvez également obtenir une copie d’une requête Web.Page à partir d’Excel. Pour copier le code à partir d’Excel :

  1. Sélectionnez l'onglet À partir du Web à partir des Données.
  2. Entrez l’adresse dans la boîte de dialogue À partir du web, puis sélectionnez OK.
  3. Dans Navigateur, choisissez les données que vous souhaitez charger, puis sélectionnez Transformer des données.
  4. Sous l’onglet Accueil de Power Query, sélectionnez Éditeur avancé.
  5. Dans la fenêtre Éditeur avancé, copiez la formule M.
  6. Dans l’application qui utilise Web.BrowserContents, sélectionnez le connecteur Requête vide.
  7. Si vous copiez vers Power BI Desktop :
    1. Sous l’onglet Accueil, sélectionnez Éditeur avancé.
    2. Collez la requête Web.Page copiée dans l’éditeur, puis sélectionnez Terminé.
  8. Si vous copiez vers Power Query Online :
    1. Dans le connecteur Requête vide, collez la requête Web.Page copiée dans la requête vide.
    2. Sélectionnez une passerelle de données locale à utiliser.
    3. Cliquez sur Suivant.

Vous pouvez également entrer manuellement le code suivant dans une requête vide. Vérifiez que vous entrez l’adresse de la page web que vous souhaitez charger.

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

Capture des demandes web et révocation de certificats

Nous avons renforcé la sécurité des connexions web pour protéger vos données. Toutefois, cela signifie que certains scénarios, comme la capture de requêtes web avec Fiddler, ne fonctionneront plus par défaut. Pour activer ces scénarios :

  1. Ouvrez Power BI Desktop.

  2. Sous l’onglet Fichier, sélectionnez Options et paramètres>Options.

  3. Dans Options, sous Global>Sécurité, désactivez l'option Activer la vérification de la révocation des certificats.

    Capture d'écran de la case Vérification de la révocation des certificats cochée.

  4. Cliquez sur OK.

  5. Redémarrez Power BI Desktop.

Important

Notez que la désactivation de l’option Activer la vérification de la révocation des certificats a pour effet d’altérer la sécurité des connexions web.

Pour définir ce scénario dans Stratégie de groupe, utilisez la clé « DisableCertificateRevocationCheck » dans le chemin d’accès du Registre «Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI Desktop ». La définition de « DisableCertificateRevocationCheck » sur 0 active toujours la vérification (en arrêtant Fiddler et des logiciels similaires), et la définition de « DisableCertificateRevocationCheck » sur 1 désactive toujours la vérification (en activant Fiddler et des logiciels similaires).

Modification de la méthode d’authentification

Dans certains cas, il se peut que vous deviez modifier la méthode d’authentification que vous utilisez pour accéder à un site particulier. Si cette modification est nécessaire, accédez à Modifier la méthode d’authentification.

Authentification auprès de services arbitraires

Certains services prennent en charge la possibilité pour le connecteur Web de s’authentifier avec une authentification OAuth/Microsoft Entra ID prête à l’emploi. Toutefois, cela ne fonctionne pas dans la plupart des cas.

Lors d’une tentative d’authentification, si vous voyez l’erreur suivante :

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

Erreur de connexion à un point de terminaison qui ne prend pas en charge OAuth avec le connecteur web.

Contactez le propriétaire du service. Il devra modifier la configuration de l’authentification ou créer un connecteur personnalisé.

Le connecteur web utilise HTTP 1.1 pour communiquer

Le connecteur web Power Query communique avec une source de données à l’aide du protocole HTTP 1.1. Si votre source de données s’attend à communiquer à l’aide du protocole HTTP 1.0, il se peut que vous receviez une erreur, telle que 500 Internal Server Error.

Il n’est pas possible de commuter Power Query pour utiliser HTTP 1.0. Power Query envoie toujours un message Expect:100-continue quand il y a un corps afin d’éviter de transmettre une charge utile potentiellement volumineuse lorsque l’appel initial lui-même pourrait échouer (par exemple, en raison d’un manque d’autorisation). Actuellement, ce comportement ne peut pas être modifié.

Connexion à Microsoft Graph

Power Query ne prend actuellement pas en charge la connexion aux API REST Microsoft Graph. Plus d’informations : manque de support pour Microsoft Graph dans Power Query

Voir aussi