Pular para o conteúdo principal

PBI Pilot – Teste grátis sem custos um assistente de IA para o seu Power BI

Como usar o Web.Contents do Power Query: guia completo

Como usar o Web.Contents do Power Query para acessar dados online

O Power Query é uma ferramenta poderosa para obter, transformar e analisar dados de diferentes fontes. Uma dessas fontes é a web, que contém uma grande variedade de dados online que podem ser úteis para os seus projetos.

Para acessar dados online a partir de uma URL, você pode usar a função Web.Contents do Power Query. Essa função retorna o conteúdo binário baixado da URL especificada e permite que você use opções adicionais para personalizar a sua consulta.

Neste artigo, vamos mostrar como usar o Web.Contents para obter dados de diferentes tipos de arquivos online, como CSV, Excel ou JSON. Também vamos discutir as vantagens e desvantagens dessa função em comparação com outras funções do Power Query.

O que é o Web.Contents?

O Web.Contents é uma função do Power Query que permite acessar dados online a partir de uma URL. Você pode usar essa função para obter dados de diferentes fontes da web, como arquivos CSV, Excel, JSON ou APIs REST.

A sintaxe básica do Web.Contents é:

Web.Contents(url as text, optional options as nullable record)


O primeiro argumento é a URL como texto. O segundo argumento é um registro opcional com opções adicionais, como parâmetros de consulta ou cabeçalhos HTTP.

Por exemplo:

Web.Contents("https://example.com/api/data", [Query=[key="value"], Headers=[Authorization="Bearer xxx"]])


Isso retornaria o conteúdo binário baixado da URL especificada com os parâmetros e cabeçalhos fornecidos.

Você pode usar outra função para abrir o conteúdo binário dependendo do tipo de arquivo, como Csv.Document, Excel.Workbook ou Json.Document.

Como usar o Web.Contents para diferentes tipos de arquivos

Vamos ver alguns exemplos de como usar o Web.Contents para obter dados de diferentes tipos de arquivos online.

Arquivo CSV

Um arquivo CSV é um formato simples que armazena dados tabulares separados por vírgulas. Você pode encontrar muitos arquivos CSV online que contêm dados interessantes para os seus projetos.

Por exemplo, se você quiser obter os dados do seguinte link:

https://raw.githubusercontent.com/excelinppc/web-contents-function-secret-web-crawling-weapon-in-power-query/master/Example%20Files/CSV%20File.csv


Você pode usar o seguinte código:

let 
  source = Web.Contents("https://raw.githubusercontent.com/excelinppc/web-contents-function-secret-web-crawling-weapon-in-power-query/master/Example%20Files/CSV%20File.csv") 
  csv = Csv.Document(source) 
in csv


Isso retornaria uma tabela com os dados do arquivo CSV. Você pode usar a função Csv.Document para abrir o conteúdo binário como uma tabela.

Arquivo Excel

Um arquivo Excel é um formato popular que armazena dados em planilhas com fórmulas e formatação. Você também pode encontrar muitos arquivos Excel online que contêm dados úteis para os seus projetos.

Por exemplo se você quiser obter os dados do seguinte link:

https://raw.githubusercontent.com/excelinppc/web-contents-function-secret-web-crawling-weapon-in-power-query/master/Example%20Files/Excel%20File.xlsx


Você pode usar o seguinte código:

let 
  source = Web.Contents ( "https://raw.githubusercontent.com/excelinppc/web-contents-function-secret-web-crawling-weapon-in-power-query/master/Example%20Files/Excel%20File.xlsx"), 
  data = Excel.Workbook(source) 
in data



Isso retornaria uma tabela com os nomes e os conteúdos das planilhas do arquivo Excel. Você pode usar a função Excel.Workbook para abrir o conteúdo binário como uma tabela.

Arquivo JSON

Um arquivo JSON é um formato leve que armazena dados em pares de chave-valor. Você pode encontrar muitos arquivos JSON online que contêm dados estruturados ou semiestruturados para os seus projetos.

Por exemplo, se você quiser obter os dados do seguinte link:

https://jsonplaceholder.typicode.com/users

Você pode usar o seguinte código:

let 
  source = Web.Contents("https://jsonplaceholder.typicode.com/users"), 
  data = Json.Document(source) 
in data



Isso retornaria uma lista com os registros dos usuários do arquivo JSON. Você pode usar a função Json.Document para abrir o conteúdo binário como uma lista ou um registro.

Parâmetros de Consulta

O Web.Contents aceita uma série de Parâmetros e seu segundo argumento e são eles:

  • RelativePath: este parâmetro permite especificar um caminho relativo a ser anexado à URL base. Por exemplo, se você quiser pesquisar o termo “Power Query” no Bing, você pode usar o seguinte código:

let
  searchText = "Power Query",
  source = Web.Contents (
    "https://www.bing.com",
    [ RelativePath = "search", Query = [q = searchText] ]
  )
in
  source

  • Query: este parâmetro permite especificar os parâmetros de consulta a serem anexados à URL. Por exemplo, se você quiser obter as taxas de câmbio do Banco do México usando sua API, você pode usar o seguinte código:

let
  apiToken = "your_api_token",
  source = Web.Contents (
    "https://www.banxico.org.mx/SieAPIRest/service/v1/series/",
    [
      RelativePath = "SF43718/datos/oportuno",
      Query = [token = apiToken]
    ]
  )
in
  source

  • Headers: este parâmetro permite especificar os cabeçalhos HTTP a serem enviados com a solicitação. Por exemplo, se você quiser obter as taxas de câmbio do Banco do México usando sua API e autenticar-se através do cabeçalho em vez do parâmetro de consulta, você pode usar o seguinte código:

let
  apiToken = "your_api_token",
  source = Web.Contents (
    "https://www.banxico.org.mx/SieAPIRest/service/v1/series/SF43718/datos/oportuno",
    [
      Headers = [#"Bmx-Token"=apiToken]
    ]
  )
in
  source

  • Content: este parâmetro permite especificar o corpo da solicitação. Por exemplo, se você quiser enviar uma solicitação POST para uma API que aceita dados JSON no corpo, você pode usar o seguinte código:

let
  data = Text.ToBinary (Json.FromValue ([name="John", age=25])),
  source = Web.Contents (
    "https://example.com/api/post",
    [
      Content=data,
      Headers=[#"Content-Type"="application/json"]
    ]
  )
in
  source

  • Timeout: este parâmetro permite especificar o tempo limite da solicitação em segundos. Por exemplo, se você quiser limitar o tempo de espera da solicitação para 10 segundos, você pode usar o seguinte código:

let

source=Web.Contents("https://example.com/api/slow",[Timeout=10])

in

source

  • IsRetry: este parâmetro permite indicar se a solicitação é uma tentativa de repetição. Por exemplo, se você quiser repetir a solicitação em caso de falha da primeira vez, você pode usar o seguinte código:

let

source=Web.Contents("https://example.com/api/unstable",[IsRetry=true])

in

source

  • ManualStatusHandling: este parâmetro permite especificar os códigos de status HTTP para os quais não deve haver tratamento automático. Por exemplo, se você quiser lidar manualmente com os códigos de erro 400 e 500, você pode usar o seguinte código:

let

source=Web.Contents("https://example.com/api/error",[ManualStatusHandling={400;500}])

in

source

  • AutomaticDecompression: este parâmetro permite indicar se a resposta deve ser descompactada automaticamente. Por padrão, esse valor é verdadeiro. Se você quiser desativá-lo por algum motivo, você pode usar o seguinte código:

let

source=Web.Contents("https://example.com/api/compressed",[AutomaticDecompression=false])

in

source


Quais são as vantagens e desvantagens do Web.Contents?

O Web.Contents é uma função muito útil e flexível para acessar dados online a partir de uma URL. No entanto, ela também tem algumas vantagens e desvantagens que você deve considerar antes de usá-la.

Algumas das vantagens são:

  • Você pode usar o Web.Contents para obter dados de qualquer tipo de arquivo online que tenha uma URL válida.
  • Você pode usar opções adicionais para personalizar a sua consulta, como parâmetros de consulta ou cabeçalhos HTTP.
  • Você pode usar o Web.Contents para acessar APIs REST que requerem autenticação ou chaves de API. Em vez de codificar duramente a chave secreta em M (o que representaria um risco de segurança), a chave pode ser fornecida de forma segura especificando o seu nome (não o seu valor) em M, escolhendo a autenticação da API web e introduzindo o valor-chave como parte da credencial.

Algumas das desvantagens são:

  • Você precisa saber o tipo de arquivo que está baixando e usar outra função para abrir o conteúdo binário adequadamente. Se você não souber o tipo de arquivo ou se ele mudar ao longo do tempo, você pode ter erros na sua consulta.
  • Você precisa ter cuidado com as URLs que usa no Web.Contents, pois elas podem conter informações sensíveis ou pessoais que podem ser expostas na sua consulta. Por exemplo, se você usar uma URL que contenha um token de acesso ou um ID de usuário, esses dados podem ser vistos por outras pessoas que tenham acesso à sua consulta.

Você precisa estar ciente das limitações do Web.Contents em termos de desempenho e segurança. Por exemplo, se você baixar muitos dados online usando essa função, você pode ter problemas de velocidade ou de consumo de memória. Além disso, se você acessar dados online que não sejam confiáveis ou seguros, você pode estar sujeito a ataques maliciosos ou a violações de privacidade.

Conclusão

O Web.Contents é uma função do Power Query que permite acessar dados online a partir de uma URL. Você pode usar essa função para obter dados de diferentes tipos de arquivos online, como CSV, Excel ou JSON. Você também pode usar opções adicionais para personalizar a sua consulta, como parâmetros de consulta ou cabeçalhos HTTP.

No entanto, o Web.Contents também tem algumas vantagens e desvantagens que você deve considerar antes de usá-la. Você precisa saber o tipo de arquivo que está baixando e usar outra função para abrir o conteúdo binário adequadamente. Você também precisa ter cuidado com as URLs que usa no Web.Contents, pois elas podem conter informações sensíveis ou pessoais que podem ser expostas na sua consulta. Além disso, você precisa estar ciente das limitações do Web.Contents em termos de desempenho e segurança.

Esperamos que este artigo tenha sido útil para você aprender como usar o Web.Contents do Power Query para acessar dados online. Se você tiver alguma dúvida ou sugestão, por favor deixe um comentário abaixo.


DISCLAIMER!!!!!!!

Se você acompanha meu conteúdo pode ter achado esquisito um pouco o modo formal que esse artigo teve, é porque ele foi criado 100% usando o novo recurso da Microsoft o Bing Chat que utiliza um modelo mais poderoso do já conhecido ChatGPT, a proposito a imagem desse artigo foi gerada pelo DALL-E da Open AI e o prompt pra geração dessa imagem foi feita pelo ChatGPT... E aí, agora como saber quem criou ou não o conteúdo que você consome?

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Power BI Service - O Publicar na Web não está disponível para mim, e agora?

Olá seus pão duro que adoram publicar link público, tudo bem com vocês? Hoje vamos dar uma mãozinha para você que por algum motivo arrancou todos os fios de cabelo da cabeça porque não viu mais a opção de Publicar na Web disponível no seu Power BI. Antes também gostaria de te fazer dois convites: O segundo, como sempre te convido a conhecer meu canal no YouTube, se inscrever e compartilhar os conteúdos que faço sempre com muito carinho para todos vocês (coisa melosa), https://youtube.com/rafaelmendonca Dados os recados vamos para nosso problema... 1) Seu dia amanheceu assim... Numa bela manha você decide publicar seu relatório e compartilhar para toda a rede e se depara com essa situação: Cara quem roubou meu botão de "Publicar na Web"? Mas não se desespere isso pode ser uma configuração que o administrador do tenant (do seu site no serviço do PBI) ou até mesmo você desavisadamente alterou. 2) Verificando a Opção Desabilitada... A partir daqui ...

[Power BI] O totalizador da minha Tabela ou Matriz "NÃO BATE" e agora?

Olá amantes de visuais de tabela e matriz no Power BI, tudo bem? Hoje vamos falar de um caso que vejo bastante nos grupos do Power BI. “O calculo na linha está batendo mas no total não e agora?” Mas antes de iniciarmos, que tal deixar aquela sua inscrição marota no meu canal no youtube que está recheado de vídeos legais, vai lá seu pão duro de like youtube.com/rafaelmendonca Agora que você já aliviou sua pão-durice você merece conteúdo .... kkkkkkkk Vamos lá, temos então a seguinte tabela gerada no meu conjunto de dados Essa tabela possui uma lista de vendas realizadas por dois vendedores com o numero da ordem da venda, um valor unitário e uma quantidade de itens em cada venda. O que queremos é bem simples meu jovem, calcular o valor total de cada venda e ter um total de todas as vendas... Aí você muito garotão usa a seguinte expressão DAX: E depois joga isso numa tabela. Lindo neh??? Mas o totalizador trouxe um valor que não tem...

[Power BI] Lista do SharePoint não é Banco de Dados, OK?

Olá viciados em SharePoint e outras coisas mais que são impronunciáveis a essa hora, tudo bem? Bem se você já conhece esse blog sabe que sou apaixonado por tecnologias Microsoft e com o SharePoint não poderia ser diferente, MAS... aí vem o grande MAS... não usem listas do SharePoint como Banco de Dados, porque as consultas a esse tipo de fonte são extremamente lentas e ineficientes seja no nosso Projeto no Power BI ou para qualquer outra coisa que você queira fazer que precise utilizar esses dados. Então vamos lá, para nossa demonstração pra não ficar só no meu PAPO! Para nossa demonstração eu criei três Fluxos de Dados (DataFlows) no Power BI Web utilizando 3 fontes de dados que possuem os mesmo dados, uma tabela de duas colunas e mais de 200 mil linhas, no Excel, SharePoint e Azure SQL Server. Criei uma única entidade em cada Fluxo de Dados para que pudéssemos avaliar o tempo de atualização de cada uma das Fontes. Conectei meu Power BI Desktop a esses Data Flows para qu...