Saltar para o conteúdo
Voltar ao blogue

Como obter oportunidades de negócio para a sua empresa

Robert MunceanuÚltima atualização em 5 min read
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 Munceanu

Desenvolvedor 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.

Recolha alternativa de dados para o sector financeiro: Como os dados da Web dão aos investidores uma vantagem
Casos de utilização

Recolha alternativa de dados para o sector financeiro: Como os dados da Web dão aos investidores uma vantagem

TL;DR: A recolha de dados alternativos utiliza técnicas de recolha na Web para reunir conjuntos de dados não tradicionais (preços de produtos, sentimentos, anúncios de emprego, registos regulamentares) que revelam sinais de mercado antes de aparecerem nos relatórios de ganhos. Este guia orienta-o através das fontes de dados de maior valor, como criar condutas de nível financeiro, validação da qualidade dos dados e as protecções de conformidade necessárias para se manter do lado certo da lei.

Mihnea-Octavian Manolache19 min read
Ler artigo
O que são dados financeiros? Tipos, métodos de recolha e ferramentas de análise
Casos de utilização

O que são dados financeiros? Tipos, métodos de recolha e ferramentas de análise

TL;DR: Os dados financeiros são a coleção de registos quantitativos (receitas, despesas, activos, passivos, fluxo de caixa) que as organizações e os indivíduos utilizam para tomar decisões económicas informadas. Este guia analisa as quatro principais demonstrações financeiras, compara as fontes de dados tradicionais e alternativas, apresenta métodos de recolha modernos e abrange as ferramentas em que os profissionais confiam para a análise.

Suciu Dan15 min read
Ler artigo
Selectores XPath vs CSS: Escolher o correto
Casos de utilização

Selectores XPath vs CSS: Escolher o correto

TL;DR: Os selectores XPath e CSS localizam ambos elementos DOM, mas resolvem problemas diferentes. Os selectores CSS são mais rápidos e mais legíveis para selecções simples. O XPath ganha quando é necessário percorrer o DOM em qualquer direção, fazer corresponder conteúdo de texto ou lidar com lógica condicional complexa. A maioria dos projectos de produção beneficia da utilização de ambos estrategicamente.

Mihai Maxim14 min read
Ler artigo

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.