Como obter oportunidades de negócio para a sua empresa

Robert Munceanu em 24 de abril de 2021

imagem do blogue

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-vindos ao especial de hoje! A geração de leads será o prato principal deste artigo, e vamos descobrir porque é que a utilização de uma ferramenta de web scraping nos pode ajudar a reunir leads de forma eficiente.

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

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

A criação de um grande grupo de contactos pode demorar algum tempo, porque precisa de muitos contactos para fazer crescer a sua empresa e a pesquisa manual em todos os sítios Web consome muito tempo. Também não quer o número de telefone de toda a gente, apenas dos que interessam à sua empresa, pelo que uma seleção de qualidade ocupará ainda mais o seu tempo.

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

Algumas pessoas criam o seu negócio em torno deste assunto, ou seja, recolhem e vendem contactos a outras empresas. Esta parece ser uma solução rápida e fácil, mas a qualidade do conjunto de contactos pode não estar à altura dos seus padrões. Além disso, não há dúvida de que esta opção implica gastar algum dinheiro.

Então, como é que o pode fazer de forma rápida e eficiente? É aí que uma ferramenta de recolha de dados da Web entra em cena para salvar o dia. Desta forma, pode selecionar apenas os contactos em que está interessado, por exemplo, separando-os pelas suas avaliações.

Um guia passo-a-passo para gerar contactos 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, temos de contactar restaurantes ou bares locais e perguntar se estão interessados em vender os nossos produtos no seu estabelecimento.

A forma como o faz depende de si. Nós ajudamo-lo a raspar, não a falar!

Primeiro, temos de saber onde procurar a informação necessária, e a Internet é a melhor forma de o fazer. Existem sítios Web de diretórios com listas de empresas organizadas por nicho, localização, atividade e até dimensão. Neste exemplo, vamos utilizar o Yell.

De seguida, vamos criar a nossa conta WebScrapingAPI e prosseguir com o exemplo.

Criar a sua conta WebScrapingAPI

Este passo é fácil, uma vez que a criação de uma conta é bastante simples e, não se preocupe, é gratuita! Depois de confirmar o seu registo por e-mail, podemos avançar para o passo seguinte.

Utilizar a sua chave de acesso

Depois de iniciar a sessão, será redireccionado para o painel de controlo, onde encontrará informações que o ajudarão a fazer scraping da Web. Na secção playground, pode testar os resultados com diferentes parâmetros e, se quiser saber mais sobre como utilizar a API, pode consultar a documentação.

imagem do blogue

Para já, interessa-nos a chave de acesso. Esta chave será utilizada como parâmetro no nosso projeto para autenticar a API.

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

Integrar a WebScrapingAPI no seu projeto

Nesta etapa, teremos de preparar o nosso projeto para o scraping. Pode utilizar o IDE e a linguagem de programação que mais 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: utilizado para efetuar pedidos HTTP
  • jsdom: útil quando se trata de 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 dos seus projectos: npm install got jsdom csv-writer

2. Definir parâmetros para os seus pedidos

Aqui, especificamos o URL do sítio Web que pretendemos extrair (no nosso caso, será o Yell) e, claro, a chave de acesso para que o 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. Fazer o pedido

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

O pedido será efectuado à WebScrapingAPI, juntamente com os parâmetros que definimos anteriormente, e receberemos uma resposta que contém o HTML em bruto da página recolhida. De seguida, teremos de ver como localizar a informação de que necessitamos no HTML.

4. Inspecionar os elementos

Aqui devemos navegar no sítio Web que pretendemos extrair e utilizar as Developer Tools para procurar os elementos que contêm as informações de cada negócio, no nosso caso, cada item tem a classe "businessCapsule--mainRow".

imagem do blogue
imagem do blogue

Nas imagens apresentadas acima, aprofundámos o elemento de item de negócio para observar que o nome de cada negócio está localizado na etiqueta 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 estão nos elementos com as classes "startRating--average" e "starRating--total", respetivamente.

5. Analisar o HTML

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

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

6. Filtragem de resultados

Nesta fase, vamos iterar através de todos os elementos que têm a classe "businessCapsule--mainRow" e extrair a informação 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. Temos 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 objectos. Cada objeto representará uma coluna do nosso ficheiro csv. A propriedade title destes objectos representa o título de cada coluna, enquanto a propriedade id tem de corresponder às propriedades dos objectos da nossa lista de ligações.

Agora, se envolvermos todo o código com uma função assíncrona e adicionarmos um ciclo para procurar as primeiras 5 páginas de empresas, o código deve ter o seguinte aspeto:

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!!!

imagem do blogue

Bom trabalho! Terminou a recolha de informações sobre potenciais clientes potenciais.

Deixe que a WebScrapingAPI se torne a melhor amiga da sua empresa

Esta é uma forma rápida de criar o seu próprio grupo de contactos e potenciais parceiros de negócio. Para além de gerar leads, o WebScrapingAPI pode ajudá-lo em outras situações. Pode saber mais sobre elas no nosso blogue.

Com base no seu projeto, o WebScrapingAPI tem vários pacotes que se adaptam às suas necessidades. Se ainda não está convencido de como o nosso produto contribui para o seu negócio, porque não experimentar primeiro o plano gratuito? Este plano oferece 1000 chamadas API gratuitas para começar.

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 da Web os resultados de locais do Google Maps

Saiba como extrair resultados de locais do Google Maps com a nossa API utilizando Node.js: guia passo-a-passo, benefícios do extrator profissional e muito mais. Obtenha data_id, coordenadas e crie parâmetros de dados facilmente.

Andrei Ogiolan
avatar do autor
Andrei Ogiolan
9 min. de leitura
miniatura
GuiasComo fazer Web Scrape do Yelp.com (Atualização de 2023) - Um guia passo-a-passo

Saiba como recolher dados de empresas do Yelp.com com o nosso guia atualizado. Obtenha instruções passo-a-passo e dicas para fazer scraping do Yelp na Web em 2023.

Raluca Penciuc
avatar do autor
Raluca Penciuc
8 min. de leitura
miniatura
Casos de utilizaçãoComo utilizar a WebScrapingAPI para recolher dados do Yelp

Se pretende obter dados sobre os seus concorrentes, poucos sítios Web são tão valiosos como o Yelp. Com a WebScrapingAPI, obter esses dados é muito fácil.

Robert Sfichi
avatar do autor
Robert Sfichi
7 min. de leitura