Voltar ao blogue
Casos de utilização
Robert MunceanuLast updated on Apr 28, 20265 min read

Como obter oportunidades de negócio para a sua empresa

Como obter oportunidades de negócio para a sua empresa

Se tem um produto fantástico ou uma ideia revolucionária para partilhar com o mundo, não seria uma pena que as pessoas não soubessem da sua existência?

Olá e bem-vindo ao especial de hoje! A geração de leads será o prato principal deste artigo, e vamos descobrir por que razão a utilização de uma ferramenta de web scraping pode ajudar-nos a recolher leads de forma eficiente.

Se ficar até ao fim, verá um exemplo rápido de um web scraper em ação e como este ajuda as empresas a encontrar potenciais clientes. Sem mais delongas, vamos afiar as nossas facas e começar com a entrada!

Como o web scraping pode ajudá-lo a recolher leads

Criar uma boa base de leads pode demorar algum tempo, porque precisa de muitos contactos para fazer crescer o seu negócio, e pesquisar manualmente em todos os sites é demorado. Também não quer o número de telefone de toda a gente, apenas aqueles que interessam ao seu negócio, pelo que a seleção de qualidade vai ocupar ainda mais do seu tempo.

O que podemos fazer em relação a isso?

Algumas pessoas criam os seus negócios em torno deste tema; ou seja, recolher e vender leads para outras empresas utilizarem. Isto parece uma solução rápida e fácil, mas a qualidade do seu conjunto de leads pode não estar à altura dos seus padrões. Além disso, não há dúvida de que esta opção implicará gastar algum dinheiro.

Então, como pode fazê-lo você mesmo de forma rápida e eficiente? É aí que uma ferramenta de web scraping entra em cena para salvar o dia. Desta forma, pode selecionar apenas os leads em que está interessado, por exemplo, separando-os pelas suas avaliações.

Um guia passo a passo para gerar leads com a API de Web Scraping

Imaginemos que somos uma nova microcervejaria na cidade e queremos que as pessoas conheçam os nossos produtos. Para atingir este objetivo, precisamos de contactar restaurantes ou bares locais e perguntar se estão interessados em vender os nossos produtos nos seus estabelecimentos.

A forma como decide fazer isso é consigo. Nós ajudamos-lhe com o scraping, não com a conversa!

Primeiro, precisamos de saber onde procurar as informações necessárias, e a Internet é a melhor forma de o fazer. Existem sites de diretórios com listas de empresas organizadas por nicho, localização, atividade e até mesmo dimensão. Neste exemplo, iremos utilizar o Yell.

A seguir, vamos criar a nossa conta WebScrapingAPI e prosseguir com o exemplo.

Cria a tua conta WebScrapingAPI

Este passo é fácil, pois criar uma conta é bastante simples, e não se preocupe, é grátis! Depois de confirmar o seu registo por e-mail, podemos avançar para o próximo passo.

Utilize a sua chave de acesso

Após iniciar sessão, será redirecionado para o painel de controlo, onde encontrará informações que o ajudarão a extrair dados da Web. Na secção «playground», pode testar resultados com diferentes parâmetros e, se desejar saber mais sobre como utilizar a API, pode consultar a documentação.

Por agora, estamos interessados na chave de acesso. Esta chave será utilizada como parâmetro no nosso projeto para autenticar com a API.

Tenha cuidado para não a partilhar com ninguém, pois é o seu segredinho, mas se achar que a chave de acesso foi comprometida, pode repor a chave da API sempre que quiser, premindo o botão mostrado acima.

Integre a WebScrapingAPI no seu projeto

Nesta etapa, teremos de preparar o nosso projeto para o scraping. Pode utilizar qualquer IDE e linguagem de programação que melhor lhe convier, mas, para este exemplo, vamos utilizar o WebStorm como IDE, e o código será escrito em NodeJS.

1. Instale os seguintes pacotes:

  • got: usado para fazer pedidos HTTP
  • jsdom: útil para a análise de HTML
  • csv-writer: para armazenar os dados extraídos num ficheiro CSV

Para instalar os pacotes acima, basta utilizar a seguinte linha de comando no terminal do seu projeto: npm install got jsdom csv-writer

2. Defina os parâmetros para as suas solicitações

Aqui, vamos especificar a URL do site que queremos rastrear; no nosso caso, será o Yell e, claro, a chave de acesso para que a WebScrapingAPI funcione.

const url = "https://www.yell.com/ucs/UcsSearchAction.do?keywords=restaurants%26location=United+Kingdom%26scrambleSeed=1024089043"
const params = {
   api_key: "XXXXX",
   url: url
}

3. Efetue a solicitação

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

A solicitação será enviada à WebScrapingAPI juntamente com os parâmetros que definimos anteriormente, e receberemos uma resposta contendo o HTML bruto da página extraída. A seguir, teremos de ver como localizar as informações de que precisamos dentro do HTML.

4. Inspecionar elementos

Aqui, temos de navegar no site que pretendemos extrair e utilizar as Ferramentas de Programador para procurar os elementos que contêm as informações de cada empresa; no nosso caso, cada item tem a classe “businessCapsule--mainRow”.

Nas imagens apresentadas acima, aprofundámo-nos no elemento do item de negócio para observar que o nome de cada empresa se encontra na tag com a classe “businessCapsule--name”.

Repetindo este processo, encontraremos o número de telefone no elemento com a classe “business--telephoneNumber” e as classificações média e total encontram-se nos elementos com as classes “startRating--average” e “starRating--total”, respetivamente.

5. Análise do HTML

O JSDOM irá ajudar-nos a analisar as informações fornecidas pela WebScrapingAPI, uma vez que irá devolver a página completa em formato HTML.

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

6. Filtrar resultados

Nesta fase, iremos percorrer todos os elementos com a classe “businessCapsule--mainRow” e extrair as informações dos elementos de que falámos anteriormente. Os dados extraídos serão então adicionados como um objeto a uma lista.

const relatedElements = document.querySelectorAll('.businessCapsule--mainRow')
relatedElements.forEach(el => {
   const businessName = el.querySelector('.businessCapsule--name')
   const businessRatingAverage = el.querySelector('.starRating--average')
   const businessRatingTotal = el.querySelector('.starRating--total span')
   const businessContact = el.querySelector('.business--telephoneNumber')
   leads.push({
       businessName: businessName ? businessName.innerHTML : 'No business name',
       businessRatingAverage: businessRatingAverage ? businessRatingAverage.innerHTML : 'No ratings',
       businessRatingTotal: businessRatingTotal ? businessRatingTotal.innerHTML : 'No ratings',
       businessContact: businessContact ? businessContact.innerHTML : 'No phone number'
   })
})

7. Armazenar os dados

Armazenar os dados num ficheiro CSV parece ser uma boa solução e é aqui que o csv-writer nos vai ajudar. Precisamos de especificar o caminho e o nome do ficheiro CSV no parâmetro path e no parâmetro header, e teremos de especificar uma lista de objetos. Cada objeto representará uma coluna do nosso ficheiro CSV. A propriedade title destes objetos representa o título de cada coluna, enquanto a propriedade id precisa de corresponder às propriedades dos objetos na nossa lista de leads.

Agora, se envolvermos todo o código numa função async e adicionarmos um loop para extrair as primeiras 5 páginas de empresas, o código deverá ficar assim:

const {JSDOM} = require("jsdom");
const got = require("got");

(async () => {

   const leads = []
   const nrPages = 5

   for (let page = 1; page <= nrPages; page++) {
       const url = "https://www.yell.com/ucs/UcsSearchAction.do?keywords=restaurants%26location=United+Kingdom%26scrambleSeed=1024089043%26pageNum=" + page
       const params = {
           api_key: "XXX",
           url: url
       }
       const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})
       const {document} = new JSDOM(response.body).window
       const relatedElements = document.querySelectorAll('.businessCapsule--mainRow')

       if (relatedElements) {
           relatedElements.forEach(el => {
               const businessName = el.querySelector('.businessCapsule--name')
               const businessRatingAverage = el.querySelector('.starRating--average')
               const businessRatingTotal = el.querySelector('.starRating--total span')
               const businessContact = el.querySelector('.business--telephoneNumber')
               leads.push({
                   businessName: businessName ? businessName.innerHTML : 'No business name',
                   businessRatingAverage: businessRatingAverage ? businessRatingAverage.innerHTML : 'No ratings',
                   businessRatingTotal: businessRatingTotal ? businessRatingTotal.innerHTML : 'No ratings',
                   businessContact: businessContact ? businessContact.innerHTML : 'No phone number'
               })
           })
       }
   }

   const csvWriter = require('csv-writer').createObjectCsvWriter({
       path: 'leads.csv',
       header: [
           {id: 'businessName', title: 'Business Name'},
           {id: 'businessRatingAverage', title: 'Business Average Rating'},
           {id: 'businessRatingTotal', title: 'Business No. of Ratings'},
           {id: 'businessContact', title: 'Business Phone Number'},
       ]
   })

   csvWriter.writeRecords(leads).then(() => console.log('Success!!'))

})();

Sucesso!!

Bom trabalho! Concluiu a recolha de informações sobre potenciais leads.

Deixe a WebScrapingAPI tornar-se a melhor amiga do seu negócio

Esta é uma forma rápida de criar o seu próprio conjunto de leads e potenciais parceiros de negócio. Além de gerar leads, a WebScrapingAPI também pode ajudá-lo em outras situações. Pode saber mais sobre isso no nosso blog.

De acordo com o seu projeto, a WebScrapingAPI tem vários pacotes para se adequar às suas necessidades. Se ainda não está convencido de como o nosso produto pode beneficiar o seu negócio, por que não experimentar primeiro o plano gratuito? Oferece 1000 chamadas de API gratuitas para começar.

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.