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
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
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
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
remplaceWeb.Page
, carWeb.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 :
- Vous actualisez une requête qui se connecte au site.
- Vous voyez une erreur (par exemple, « la colonne « Foo » de la table est introuvable »).
- Vous actualisez à nouveau la requête.
- 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.BrowserContents
vous 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 :
Sous l’onglet Fichier, sélectionnez Options et paramètres>Options.
Dans la section Globale, sélectionnez Éditeur Power Query.
Désactivez l’option Activer l’inférence de table web, puis sélectionnez OK.
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 :
- Sélectionnez l'onglet À partir du Web à partir des Données.
- Entrez l’adresse dans la boîte de dialogue À partir du web, puis sélectionnez OK.
- Dans Navigateur, choisissez les données que vous souhaitez charger, puis sélectionnez Transformer des données.
- Sous l’onglet Accueil de Power Query, sélectionnez Éditeur avancé.
- Dans la fenêtre Éditeur avancé, copiez la formule M.
- Dans l’application qui utilise
Web.BrowserContents
, sélectionnez le connecteur Requête vide. - Si vous copiez vers Power BI Desktop :
- Sous l’onglet Accueil, sélectionnez Éditeur avancé.
- Collez la requête
Web.Page
copiée dans l’éditeur, puis sélectionnez Terminé.
- Si vous copiez vers Power Query Online :
- Dans le connecteur Requête vide, collez la requête
Web.Page
copiée dans la requête vide. - Sélectionnez une passerelle de données locale à utiliser.
- Cliquez sur Suivant.
- Dans le connecteur Requête vide, collez la requête
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 :
Ouvrez Power BI Desktop.
Sous l’onglet Fichier, sélectionnez Options et paramètres>Options.
Dans Options, sous Global>Sécurité, désactivez l'option Activer la vérification de la révocation des certificats.
Cliquez sur OK.
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.
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