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

Robert Munceanu em 07 de abril de 2021

imagem do blogue

Se está interessado em web scrapers e quer uma solução que possa extrair vários dados da Internet, veio ao sítio certo!

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

É possível criar o seu próprio raspador para extrair dados da Web, mas seria necessário muito tempo e esforço para o desenvolver, uma vez que há alguns desafios que tem de ultrapassar ao longo do caminho. E o tempo é essencial.

Sem mais demoras, vamos ver como pode extrair dados de qualquer sítio Web utilizando o WebScrapingAPI. No entanto, vamos primeiro ver porque é que os web scrapers são tão valiosos e como podem ajudá-lo a si ou à sua empresa a atingir os seus objectivos de crescimento.

Como é que a recolha de dados da Web o pode ajudar

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

  • Otimização de preços: Ter uma melhor visão da sua concorrência pode ajudar o seu negócio a crescer. Desta forma, sabe como os preços no sector 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 o melhor negócio.
  • Investigação: Esta é uma forma eficaz de recolher informações para o seu projeto de investigação. As estatísticas e os relatórios de dados são um fator importante para a autenticidade dos seus relatórios. A utilização de uma ferramenta de recolha de dados da Web acelera o processo.
  • Aprendizagem automática: Para treinar a sua IA, precisa de uma grande quantidade de dados para trabalhar, e extraí-los manualmente pode demorar muito tempo. Por exemplo, se quiser que a sua IA detecte cães em fotografias, vai precisar de muitos cachorros.

A lista continua, mas o que não se pode esquecer é que o web scraping é uma ferramenta muito importante, pois tem muitas utilizações, tal como um canivete suíço! Se tem curiosidade em saber quando é que o web scraping pode ser a resposta aos seus problemas, porque não dar uma vista de olhos?

A seguir, verá algumas funcionalidades e a forma como a WebScrapingAPI pode ajudar a extrair dados da Web como se ninguém estivesse a ver!

O que a WebScrapingAPI traz para a mesa

É provável que tenha pensado em criar a sua própria ferramenta de recolha de dados da Web em vez de utilizar uma pré-fabricada, mas há muitos aspectos a ter em conta, que podem exigir muito tempo e esforço.

Nem todos os sítios Web querem ser objeto de scraping, pelo que desenvolvem contramedidas para detetar e bloquear o bot de fazer a sua licitação. Podem utilizar diferentes métodos, como CAPTCHAs, limitação de taxas e impressão digital do navegador. Se o seu endereço IP for considerado um pouco suspeito, bem, é provável que não esteja a fazer scraping durante muito tempo.

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

Apesar de todos estes problemas, o WebScrapingAPI tira estes pesos dos seus ombros e resolve as questões com facilidade, fazendo com que a recolha de dados pareça uma tarefa fácil. Pode dar uma vista de olhos e ver com os seus próprios olhos quais os obstáculos que podem surgir na raspagem da Web!

Agora que já sabemos como a WebScrapingAPI nos pode ajudar, vamos descobrir como a utilizar, e fique descansado que também é bastante fácil!

Como utilizar a WebScrapingAPI

Chave de acesso e autenticação da API

Antes de mais, precisamos de uma chave de acesso para podermos utilizar o WebScrapingAPI. Para a adquirir, é necessário criar uma conta. O processo é bastante simples e não tem de pagar nada, uma vez que também existe um plano de subscrição gratuito!

imagem do blogue

Depois de iniciar sessão, será redireccionado 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 achar que a sua chave única foi comprometida, pode sempre utilizar o botão "Repor chave API" para obter uma nova.

imagem do blogue

Depois de ter a sua chave, podemos passar ao passo seguinte e ver como a podemos utilizar.

Documentação

É essencial saber quais as funcionalidades que o 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. O pedido mais básico que se pode fazer à API é definir os parâmetros api_key e url como a sua chave de acesso e o URL do site que se pretende raspar, 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 tem outras funcionalidades que podem ser utilizadas para a recolha de dados. Algumas delas podem ser exploradas apenas definindo mais alguns parâmetros, e outras já estão implementadas na API, de que falámos anteriormente.

Vejamos alguns outros parâmetros que podemos definir e porque são úteis para a nossa extração de dados:

  • render_js: Alguns sítios Web podem processar elementos essenciais da página utilizando JavaScript, o que significa que alguns conteúdos não serão apresentados no carregamento inicial da página e não serão recolhidos. Usando um navegador sem cabeça, a WSA é capaz de renderizar esse conteúdo e extraí-lo para que você possa usá-lo. Basta definir render_js=1 e está pronto para começar!
  • proxy_type: Pode escolher o tipo de proxies a utilizar. Eis porque é que os proxies são tão importantes e como o tipo de proxy pode ter impacto na sua recolha de dados da Web.
  • país: A geolocalização é útil quando se pretende fazer scraping de diferentes locais, uma vez que o conteúdo de um sítio Web pode ser diferente, ou mesmo exclusivo, dependendo da região. Aqui define-se o código de país de 2 letras suportado pela WSA.

Parque infantil API

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

imagem do blogue

Na secção de resultados, verá o resultado após a recolha de dados e a amostra de código do referido pedido em diferentes linguagens de programação para facilitar a integração.

Integração da API

Como podemos utilizar o WSA no nosso projeto? Vamos dar uma olhada neste exemplo rápido, em que pesquisamos a 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 que se sinta confortável.

Primeiro, precisamos de instalar alguns pacotes para nos ajudar com o pedido HTTP(got) e a análise do resultado(jsdom) utilizando esta linha de comandos no terminal do projeto:

npm install got jsdom

O nosso próximo passo é definir os parâmetros necessários para efetuar o nosso pedido:

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

É assim que preparamos o pedido à WebScrapingAPI para que esta recolha o sítio Web para nós:

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

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

imagem do blogue

Dentro do elemento, podemos ver que existe um contentor 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 devolverá a página em formato HTML, pelo que precisamos de a analisar. O JSDOM fará isso.

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 iteramos sobre eles. Dentro de cada elemento, verificamos se a classe de contentor 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 uma brincadeira de criança agora. Basta iterar através da matriz e comparar os preços entre si.

Ao terminar com uma função assíncrona, o código final deve ter o seguinte aspeto:

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 lhe tenha mostrado como pode ser útil uma ferramenta de recolha de dados da Web pronta a utilizar e como é fácil utilizá-la no seu projeto. Esta ferramenta elimina os bloqueios impostos pelos sítios Web, ajuda-o a fazer scraping na Internet de uma forma furtiva e pode também poupar-lhe muito tempo.

Porque não experimentar o WebScrapingAPI? Veja por si próprio como é útil, se ainda não o fez. A criação de uma conta é gratuita e 1000 chamadas à API podem ajudá-lo a iniciar a sua aventura na raspagem da Web.

Comece agora mesmo!

Notícias e actualizações

Mantenha-se atualizado com os mais recentes guias e notícias sobre raspagem da Web, subscrevendo a nossa newsletter.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Artigos relacionados

miniatura
GuiasComo extrair dados de produtos da Amazon: Um guia abrangente de melhores práticas e ferramentas

Explore as complexidades da extração de dados de produtos da Amazon com nosso guia detalhado. De práticas recomendadas e ferramentas como a API Amazon Scraper a considerações legais, saiba como enfrentar desafios, contornar CAPTCHAs e extrair insights valiosos com eficiência.

Suciu Dan
avatar do autor
Suciu Dan
15 min. de leitura
miniatura
GuiasSaiba como contornar a deteção do Cloudflare com o melhor navegador Selenium

Saiba qual é o melhor browser para contornar os sistemas de deteção Cloudflare enquanto faz web scraping com o Selenium.

Mihnea-Octavian Manolache
avatar do autor
Mihnea-Octavian Manolache
9 min. de leitura
miniatura
Ciência da recolha de dados da WebWeb Scraping facilitado: a importância da análise de dados

Descubra como extrair e organizar eficientemente dados para raspagem da Web e análise de dados através de análise de dados, bibliotecas de análise de HTML e metadados schema.org.

Suciu Dan
avatar do autor
Suciu Dan
12 min ler