Pular para o conteúdo principal

Power BI - NÃO EDITE seus Modelos do Power BI na Nuvem.

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] 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] Você está com erro nas suas funções DAX que até ontem funcionavam?

Hoje você acordou abriu seu Power BI tentou criar uma nova medida e está dando um erro chato como esse abaixo A sintaxe de ";" está incorreta ou até mesmo o Muitos argumentos foram passados para a função Bem não precisa se preocupar porque você não desaprendeu Power BI, a sintaxe deve estar correta, mas correta para o Padrão que usamos aqui no Brasil com o ; (ponto e virgula) como separador de lista e a ,  (vírgula) como separador de decimal. Na versão de Maio de 2020 o Power BI Desktop jogou como padrão para todos não mais o padrão regional da sua máquina mas o padrão internacional do DAX usando , (vírgula) como separador de lista e . (ponto) como separador de decimal. Sendo assim se você quiser continuar usando o padrão da máquina tem que alterar a opção indo em Arquivo Opções e Configurações e depois Opções Na caixinha que é aberta vá em Configurações Regionais na área Global E altere a opção que está  Recomendado  para  Usar separador do DAX Localizado Vai ser solicita

5 coisas no Power Query que talvez nunca tenham te explicado ou mostrado.

5 coisas no Power Query que talvez nunca tenham te explicado ou mostrado. O Power Query   é o editor de consultas utilizado tanto no PowerBI   quanto no Excel (em algumas versões) e que tem enorme poder de transformação dos dados importados de fontes diversas, sejam elas estruturadas ou não. Usuários menos experientes utilizam o  Power Query  apenas com cliques nos elementos do MENU, o que sim pode ajudar bastante, mas entender as funções e detalhes que estão por trás desses cliques podem enriquecer o seu  ETL , resolver problemas que nunca seriam feitos com o simples uso dos botões e te ajudarão numa certificação Microsoft. 1 - Sabendo o que está acontecendo: Uma das coisas principais e essenciais no uso do  Power Query  é que, mesmo utilizando os botões no Menu, você consegue identificar que funções estão sendo utilizadas. Vou mostrar isso de duas formas: Barra de Formulas - Dessa forma você pode acompanhar na barra de formulas