Voltar ao blogue
Guias
Robert MunceanuLast updated on Apr 28, 20267 min read

Como utilizar a WebScrapingAPI para recolher dados de qualquer sítio Web

Como utilizar a WebScrapingAPI para recolher dados de qualquer sítio Web

Se está interessado em ferramentas de web scraping e procura uma solução capaz de extrair diversos tipos de dados da Internet, veio ao sítio certo!

Neste artigo, vamos mostrar-lhe como é fácil utilizar a WebScrapingAPI para obter as informações de que necessita em apenas alguns instantes e manipular os dados da forma que desejar.

É possível criar o seu próprio scraper para extrair dados da web, mas o seu desenvolvimento exigiria muito tempo e esforço, uma vez que existem alguns desafios que terá de superar ao longo do processo. E o tempo é essencial.

Sem mais delongas, vamos ver como pode extrair dados de qualquer site utilizando a WebScrapingAPI. No entanto, vamos primeiro abordar por que razão os web scrapers são tão valiosos e como podem ajudá-lo a si ou à sua empresa a atingir os seus objetivos de crescimento.

Como o web scraping pode ajudá-lo

O web scraping pode ser útil para vários fins. As empresas utilizam ferramentas de extração de dados para fazer crescer os seus negócios. Os investigadores podem utilizar os dados para criar estatísticas ou para ajudar nas suas teses. Vamos ver como:

  • Otimização de preços: Ter uma visão melhor da concorrência pode ajudar o seu negócio a crescer. Desta forma, fica a saber como os preços no setor flutuam e como isso pode influenciar o seu negócio. Mesmo que esteja à procura de um artigo para comprar, isto pode ajudá-lo a comparar preços de diferentes fornecedores e a encontrar a melhor oferta.
  • Investigação: Esta é uma forma eficiente de recolher informações para o seu projeto de investigação. As estatísticas e os relatórios de dados são um aspeto importante para a autenticidade dos seus relatórios. A utilização de uma ferramenta de web scraping acelera o processo.
  • Aprendizagem Automática: Para treinar a sua IA, precisa de uma grande quantidade de dados com que trabalhar, e extraí-los manualmente pode demorar muito tempo. Por exemplo, se quiser que a sua IA detete cães em fotografias, vai precisar de muitos cachorrinhos.

A lista continua, mas o que deve ter em mente é que o web scraping é uma ferramenta muito importante, pois tem muitas utilidades, tal como um canivete suíço! Se está curioso para saber quando é que o web scraping pode ser a resposta aos seus problemas, porque não dar uma vista de olhos?

A seguir, irá ver algumas funcionalidades e como a WebScrapingAPI pode ajudar a fazer web scraping e a extrair dados como se ninguém estivesse a ver!

O que a WebScrapingAPI tem para oferecer

Provavelmente pensou em criar a sua própria ferramenta de web scraping em vez de usar uma pré-fabricada, mas há muitas coisas que precisa de ter em conta, e estas podem exigir muito tempo e esforço.

Nem todos os sites querem ser rastreados, por isso desenvolvem contramedidas para detetar e bloquear o bot de fazer o que queres. Podem usar métodos diferentes, como CAPTCHAs, limitação de taxa e impressão digital do navegador. Se acharem que o teu endereço IP é um pouco suspeito, bem, é provável que não consigas rastrear por muito tempo.

Alguns sites só querem ser rastreados em determinadas regiões do mundo, pelo que terá de utilizar um proxy para aceder aos seus conteúdos. Mas gerir um conjunto de proxies também não é tarefa fácil, uma vez que é necessário alterná-los constantemente para não ser detetado e utilizar endereços IP específicos para conteúdos com restrições geográficas.

Apesar de todos estes problemas, a WebScrapingAPI tira-lhe esse peso dos ombros e resolve as questões com facilidade, fazendo com que o scraping pareça canja. Pode dar uma vista de olhos e ver por si mesmo que obstáculos podem surgir no scraping da Web!

Agora que sabemos como a WebScrapingAPI nos pode ajudar, vamos descobrir como usá-la, e pode ter a certeza de que também é bastante fácil!

Como utilizar a WebScrapingAPI

Chave de acesso à API e autenticação

Primeiro, precisamos de uma chave de acesso para utilizar a WebScrapingAPI. Para a obter, tem de criar uma conta. O processo é bastante simples e não tem de pagar nada, pois existe também um plano de subscrição gratuito!

Após iniciar sessão, será redirecionado para o painel de controlo, onde poderá ver a sua Chave de Acesso exclusiva. Certifique-se de que a mantém em segredo e, se alguma vez achar que a sua chave exclusiva foi comprometida, pode sempre utilizar o botão «Reset API Key» para obter uma nova.

Depois de obter a sua chave, podemos passar à próxima etapa e ver como podemos utilizá-la.

Documentação

É essencial saber quais as funcionalidades que a WebScrapingAPI tem para nos ajudar na nossa aventura de web scraping. Toda esta informação pode ser encontrada na documentação apresentada de forma detalhada, com exemplos de código em diferentes linguagens de programação.  Tudo isto para compreender melhor como as coisas funcionam e como podem ser integradas no seu projeto. A solicitação mais básica que pode fazer à API é definir os parâmetros api_key e url com a sua chave de acesso e o URL do site que pretende extrair, respetivamente. Aqui está um exemplo rápido em Python:

import http.client
conn = http.client.HTTPSConnection("api.webscrapingapi.com")
conn.request("GET", "/v1?api_key=XXXXX&url=http%3A%2F%2Fhttpbin.org%2Fip")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

A WebScrapingAPI possui outras funcionalidades que podem ser utilizadas para o scraping. Algumas delas podem ser exploradas apenas definindo mais alguns parâmetros, e outras já estão implementadas na API, sobre as quais falámos anteriormente.

Vamos ver alguns outros parâmetros que podemos definir e por que razão são úteis para a nossa extração de dados:

  • render_js: Alguns sites podem renderizar elementos essenciais da página utilizando JavaScript, o que significa que algum conteúdo não será apresentado no carregamento inicial da página e não será extraído. Utilizando um navegador headless, o WSA consegue renderizar este conteúdo e extraí-lo para que o possa utilizar. Basta definir render_js=1 e está pronto!
  • proxy_type: Pode escolher que tipo de proxies utilizar. Eis porque é que os proxies são tão importantes e como o tipo de proxy pode ter impacto na sua extração de dados da Web.
  • country: A geolocalização é útil quando pretende fazer scraping a partir de diferentes localizações, uma vez que o conteúdo de um site pode ser diferente, ou mesmo exclusivo, dependendo da região. Aqui define o código de país de duas letras suportado pelo WSA.

API Playground

Se quiser ver a WebScrapingAPI em ação antes de a integrar no seu projeto, pode usar o playground para testar alguns resultados. Tem uma interface intuitiva e é fácil de usar. Basta selecionar os parâmetros com base no tipo de scraping que pretende fazer e enviar o pedido.

Na secção de resultados, verá a saída após a conclusão do scraping e o exemplo de código dessa solicitação em diferentes linguagens de programação para facilitar a integração.

Integração da API

Como podemos utilizar a WSA no nosso projeto? Vejamos este exemplo rápido em que fazemos scraping na Amazon para encontrar a placa gráfica mais cara numa página. Este exemplo está escrito em JavaScript, mas pode fazê-lo em qualquer linguagem de programação com a qual se sinta à vontade.

Primeiro, precisamos de instalar alguns pacotes para nos ajudar com a solicitação HTTP (got) e a análise do resultado (jsdom) usando esta linha de comando no terminal do projeto:

npm install got jsdom

O nosso próximo passo é definir os parâmetros necessários para fazer a nossa solicitação:

const params = {
   api_key: "XXXXXX",
   url: "https://www.amazon.com/s?k=graphic+card"
}

É assim que preparamos a solicitação à WebScrapingAPI para que ela faça o scraping do site por nós:

const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})

Agora precisamos de ver onde cada elemento da placa gráfica está localizado dentro do HTML. Usando a Ferramenta do Desenvolvedor, descobrimos que a classe s-result-item contém todos os detalhes sobre o produto, mas só precisamos do seu preço.

Dentro do elemento, podemos ver que existe um contêiner de preço com a classe a-price e a subclasse a-offscreen, de onde extrairemos o texto que representa o seu preço.

A WebScrapingAPI irá devolver a página em formato HTML, pelo que precisamos de a analisar. O JSDOM irá resolver o problema.

const {document} = new JSDOM(response.body).window

Depois de enviar o pedido e analisar a resposta recebida da WSA, precisamos de filtrar o resultado e extrair apenas o que é importante para nós. A partir do passo anterior, sabemos que os detalhes de cada produto estão na classe s-result-item, por isso percorremos esses elementos. Dentro de cada elemento, verificamos se a classe do contêiner de preço a-price existe e, se existir, extraímos o preço do elemento a-offscreen dentro dela e colocamo-lo numa matriz.

Descobrir qual é o produto mais caro deve ser canja agora. Basta percorrer a matriz e comparar os preços entre si.

Envolvendo tudo numa função assíncrona, o código final deve ficar assim:

const {JSDOM} = require("jsdom");
const got = require("got");
(async () => {
   const params = {
       api_key: "XXX",
       url: "https://www.amazon.com/s?k=graphic+card"
   }
   const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})
   const {document} = new JSDOM(response.body).window
   const products = document.querySelectorAll('.s-result-item')
   const prices = []
   products.forEach(el => {
       if (el) {
           const priceContainer = el.querySelector('.a-price')
           if (priceContainer)               prices.push(priceContainer.querySelector('.a-offscreen').innerHTML)
       }
   })
   let most_expensive = 0
   prices.forEach((price) => {
       if(most_expensive < parseFloat(price.substring(1))) 
most_expensive = parseFloat(price.substring(1))
   })
     console.log("The most expensive item is: ", most_expensive)
})();

Considerações finais

Esperamos que este artigo tenha demonstrado o quão útil pode ser uma ferramenta de web scraping pronta a usar e como é fácil utilizá-la no seu projeto. Ela contorna os obstáculos impostos pelos sites, ajuda-o a fazer scraping na Internet de forma discreta e também pode poupar-lhe muito tempo.

Porque não experimentar a WebScrapingAPI? Veja por si mesmo como é útil, se ainda não o fez. Criar uma conta é gratuito e 1000 chamadas de API podem ajudá-lo a iniciar a sua aventura de web scraping.

Comece já!

Sobre o autor
Robert Munceanu, Desenvolvedor Full-Stack @ WebScrapingAPI
Robert MunceanuDesenvolvedor Full-Stack

Robert Munceanu é um programador Full Stack na WebScrapingAPI, contribuindo em todas as áreas do produto e ajudando a criar ferramentas e funcionalidades fiáveis que sustentam a plataforma.

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.