Partilhar via


Resolução de problemas do conector Web

Qual é a diferença entre Web.Contents, Web.BrowserContents e Web.Page?

Web.Contents

  • Web.Contents é usado para recuperar conteúdos web que não precisam de ser acedidos através de um navegador, como ficheiros CSV, resultados da API JSON, e assim por diante.
  • Suporta a maior variedade de opções de autenticação.
  • Pode ser utilizado em ambientes cloud, como o Power Query Online, sem um gateway.

Web.Page

  • Web.Page é uma função legada para recuperar conteúdos web que precisam de ser acedidos através de um navegador, como páginas HTML.
  • Está construído no Internet Explorer. Por causa deste requisito, está a ser substituído na interface por Web.BrowserContents. No entanto, Web.Page continua disponível ao nível do motor para compatibilidade retroativa.
  • É necessário um gateway para o utilizar em ambientes cloud, como o Power Query Online.

Web.BrowserContents

  • Web.BrowserContents é uma função atualizada para recuperar conteúdos web que precisam de ser acedidos através de um navegador, como páginas HTML.
  • Na interface, Web.BrowserContents está a substituir Web.Page, porque Web.Page é baseado no Internet Explorer.
  • Web.BrowserContents foi inicialmente construído sobre Chromium, mas agora utiliza o controlo WebView2 do Microsoft Edge.
  • É necessário um gateway para o utilizar em ambientes cloud, como o Power Query Online.

A tabela seguinte resume as diferenças.

Web.Contents Web.Page Web.BrowserContents
Conteúdo não relacionado com o navegador (ficheiros.txt/.csv, JSON, e assim por diante) x
Conteúdo do navegador (HTML) x x
Tipos de Autenticação Suportados Anónimo
Windows
Básico
Web API
Conta Organizacional
Anónimo
Windows (apenas credenciais do utilizador atual)
Web API
Anónimo
Windows
Básico
Web API
Requer um gateway em hospedagens na nuvem N Y Y
Atualmente gerado por Todos os anfitriões Excel e Power Query Online Power BI Desktop
Baseado em .NET Explorador do Internet Controlo WebView2 do Microsoft Edge

Observação

Os pedidos POST só podem ser feitos anonimamente ao usar Web.Contents.

Avisos de "Este navegador já não é suportado" na Web View

Ao importar uma página web, pode visualizar uma pré-visualização da página usando o separador Web View no diálogo de navegação do Power Query. Esta pré-visualização pode, por vezes, mostrar um aviso como "Este navegador já não é suportado." Quando este aviso ocorre, é geralmente porque a Web View atualmente apresenta a pré-visualização da Web View usando o Internet Explorer, que já não é suportado por alguns sites. No entanto, este aviso afeta apenas a Web View e não afeta o próprio conector web. Desde que use os conectores baseados no Web.Contents ou Web.BrowserContents (e não no Web.Page), pode ignorar esses avisos em segurança. Para mais informações sobre os diferentes conectores web e as suas tecnologias subjacentes, consulte Qual é a diferença entre Web.Contents, Web.BrowserContents e Web.Page?.

Gestão de páginas web dinâmicas

Páginas web que carregam o seu conteúdo de forma dinâmica podem necessitar de tratamento especial. Se notar erros esporádicos nas suas consultas na web, é possível que esteja a tentar aceder a uma página web dinâmica. Um exemplo comum deste tipo de erro é:

  1. Refrésca uma consulta que conecta ao site.
  2. Vês um erro (por exemplo, "a coluna 'Foo' da tabela não foi encontrada").
  3. Atualizas a consulta novamente.
  4. Não ocorre qualquer erro.

Este tipo de problemas deve-se geralmente ao timing. Páginas que carregam o seu conteúdo dinamicamente podem, por vezes, ser inconsistentes, pois o conteúdo pode mudar depois de o navegador considerar o carregamento concluído. Por vezes, o conector web descarrega o HTML depois de todo o conteúdo dinâmico estar carregado. Noutras ocasiões, as alterações ainda estão em curso quando descarrega o HTML, levando a erros esporádicos.

A solução é usar a WaitFor opção Web.BrowserContents, que indica um seletor ou um período de tempo a esperar antes de descarregar o HTML.

Como é que se pode saber se uma página é dinâmica? Normalmente é bastante simples. Abre a página num navegador e vê como carrega. Se o conteúdo aparecer logo, é uma página HTML normal. Se aparecer de forma dinâmica ou mudar ao longo do tempo, é uma página dinâmica.

Utilização de um gateway com o Web connector

Tanto o Web.BrowserContents como Web.Page exigem o uso de um gateway de dados local quando publicados para um serviço cloud, como modelos semânticos ou fluxos de dados Power BI, ou fluxos de dados Power Apps. (Atualmente, o Dynamics 365 Customer Insights não suporta a utilização de um gateway.)

Se estiver a usar Web.Page e receber um Please specify how to connect erro, certifique-se de que tem instalado o Internet Explorer 10 ou mais recente na máquina que aloja o seu gateway de dados local.

Se estiver a usar o Web.BrowserContents e receber um We were unable to find the WebView2 runtime erro, certifique-se de que tem o runtime do WebView2 instalado na máquina que aloja o seu gateway de dados local. A mensagem de erro deve fornecer um link para o instalador de runtime do WebView2. Se instalaste o runtime mas continuares a ver o erro, certifica-te de que a conta do serviço gateway (normalmente PBIEgwService) tem acesso à localização de instalação do runtime WebView2 (por exemplo, C:\Program Files (x86)\Microsoft\EdgeWebView).

"Encontrámos um erro ao inicializar o navegador web" erros ao usar Web.BrowserContents

Este erro pode ocorrer se o processo que chama o Web.BrowserContents estiver a correr em modo elevado, uma vez que o WebView2 atualmente não suporta a execução com privilégios de administrador.

Usar Web.Page em vez de Web.BrowserContents

Nos casos em que precisa de usar Web.Page em vez de Web.BrowserContents, ainda pode usar Web.Pagemanualmente .

No Power BI Desktop, pode usar a função mais antiga Web.Page limpando a opção Ativar inferência de tabela web :

  1. No separador Ficheiro, selecione Opções e Opções de definições>.

  2. Na secção Global , selecione Power Query Editor.

  3. Desative a opção Ativar inferência de tabela web e depois selecione OK.

  4. Reinicie o Power BI Desktop.

    Observação

    Atualmente, não pode desativar o uso do Web.BrowserContents, no Power BI Desktop otimizado para o Power BI Report Server.

Também podes obter uma cópia de uma Web.Page query no Excel. Para copiar o código do Excel:

  1. Selecione From Web no separador de Dados.
  2. Introduza o endereço na caixa de diálogo Da Web e depois selecione OK.
  3. No Navigator, escolhe os dados que queres carregar e depois seleciona Transformar Dados.
  4. No separador Início do Power Query, selecione Editor Avançado.
  5. No Editor Avançado, copie a fórmula M.
  6. Na aplicação que usa Web.BrowserContents, selecione o conector Blank Consult .
  7. Se estiver a copiar para o Power BI Desktop:
    1. No separador Inicial , selecione Editor Avançado.
    2. Cole a consulta copiada Web.Page no editor e depois selecione Concluir.
  8. Se estiver a copiar para o Power Query Online:
    1. Na Consulta em Branco, cole a consulta copiada Web.Page na consulta em branco.
    2. Selecione um gateway de dados local para usar.
    3. Selecione Avançar.

Também pode introduzir manualmente o seguinte código numa consulta em branco. Certifique-se de inserir o endereço da página que pretende carregar.

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

Captura de requisições web e revogação de certificados

Reforçámos a segurança das ligações web para proteger os seus dados. No entanto, esta atualização significa que certos cenários, como capturar pedidos web com o Fiddler, já não funcionam por padrão. Para possibilitar esses cenários:

  1. Abra Power BI Desktop.

  2. No separador Ficheiro, selecione Opções e Opções de definições>.

  3. Nas Opções, em Segurança Global>, desmarque Ativar verificação de revogação de certificados.

    Captura de ecrã da caixa de seleção Ativar revogação de certificado selecionada.

  4. Selecione OK.

  5. Reinicie o Power BI Desktop.

Importante

Desmarcar Verificação de Revogação de Certificados torna as ligações web menos seguras.

Para definir este cenário na Política de Grupo, use a chave "DisableCertificateRevocationCheck" sob o caminho do registo "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI Desktop". Definir o "DisableCertificateRevocationCheck" a 0 ativa sempre a verificação (impedindo o Fiddler e software semelhante de funcionarem) e definir a "DisableCertificateRevocationCheck" para 1 desativa sempre a verificação (ativando o Fiddler e software semelhante).

Alteração do método de autenticação

Em alguns casos, pode ser necessário alterar o método de autenticação que utiliza para aceder a um determinado site. Se esta alteração for necessária, vá a Alterar o método de autenticação.

Autenticação em serviços arbitrários

Alguns serviços suportam a capacidade do conector Web de autenticar com autenticação OAuth/Microsoft Entra ID pronta a usar. No entanto, esta autenticação não funciona na maioria dos casos.

Ao tentar autenticar, se ocorrer o seguinte erro:

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

Captura de ecrã do diálogo de autenticação a mostrar um erro ao ligar a um endpoint que não suporta OAuth com o conector web.

Entre em contato com o proprietário do serviço. Eles precisam alterar a configuração de autenticação ou criar um conector personalizado.

O conector web usa HTTP 1.1 para comunicar

O conector Web Power Query comunica com uma fonte de dados usando HTTP 1.1. Se a sua fonte de dados espera comunicar usando HTTP 1.0, pode receber um erro, como 500 Internal Server Error.

Não é possível mudar o Power Query para usar HTTP 1.0. O Power Query envia sempre um Expect:100-continue quando existe um corpo para evitar passar uma carga útil possivelmente grande quando a chamada inicial pode falhar (por exemplo, devido à ausência de permissões). Atualmente, este comportamento não pode ser alterado.

Conectando-se ao Microsoft Graph

O Power Query atualmente não suporta a ligação às APIs REST do Microsoft Graph. Para obter mais informações: Falta de suporte para o Microsoft Graph no Power Query