Volver al blog
Casos de uso
Robert MunceanuLast updated on Apr 28, 20266 min read

Cómo captar clientes potenciales para su empresa

Cómo captar clientes potenciales para su empresa

Si tienes un producto increíble o una idea revolucionaria que compartir con el mundo, ¿no sería una pena que la gente no supiera de su existencia?

¡Hola y bienvenidos al especial de hoy! La generación de clientes potenciales será el plato principal de este artículo, y descubriremos por qué el uso de una herramienta de web scraping puede ayudarnos a recopilar clientes potenciales de manera eficiente.

Si te quedas hasta el final, verás un ejemplo rápido de un web scraper en acción y cómo ayuda a las empresas a encontrar clientes potenciales. Sin más preámbulos, ¡afilemos los cuchillos y empecemos con el aperitivo!

Cómo el web scraping puede ayudarte a recopilar clientes potenciales

Crear una buena base de clientes potenciales puede llevar bastante tiempo, ya que necesitas muchos contactos para hacer crecer tu negocio, y buscar manualmente en cada sitio web lleva mucho tiempo. Tampoco quieres el número de teléfono de todo el mundo, solo los que interesan a tu negocio, por lo que la selección de calidad te llevará aún más tiempo.

¿Qué podemos hacer al respecto?

Hay quien basa su negocio en esto: recopilar y vender clientes potenciales a otras empresas para que los utilicen. Parece una solución rápida y fácil, pero es posible que la calidad de su base de datos de clientes potenciales no esté a la altura de tus estándares. Además, no hay duda de que esta opción supondrá un gasto.

Entonces, ¿cómo puedes hacerlo tú mismo de forma rápida y eficiente? Ahí es donde una herramienta de web scraping viene al rescate. De esta manera, puedes seleccionar solo los clientes potenciales que te interesan, por ejemplo, separándolos según sus reseñas.

Una guía paso a paso para generar clientes potenciales con la API de web scraping

Imaginemos que somos una nueva microcervecería en la ciudad y queremos que la gente conozca nuestros productos. Para lograr este objetivo, necesitamos ponernos en contacto con restaurantes o pubs locales y preguntarles si están interesados en vender nuestros productos en sus locales.

Cómo decidas hacerlo depende de ti. ¡Te ayudaremos con el scraping, no con las conversaciones!

En primer lugar, necesitamos saber dónde buscar la información necesaria, e Internet es la mejor forma de hacerlo. Existen sitios web de directorios con listas de negocios organizados por su nicho, ubicación, actividad e incluso tamaño. En este ejemplo, utilizaremos Yell.

A continuación, crearemos nuestra cuenta de WebScrapingAPI y continuaremos con el ejemplo.

Crea tu cuenta de WebScrapingAPI

Este paso es fácil, ya que crear una cuenta es bastante sencillo, y no te preocupes, ¡es gratis! Tras confirmar tu registro por correo electrónico, podemos continuar con el siguiente paso.

Utiliza tu clave de acceso

Tras iniciar sesión, se te redirigirá al panel de control, donde encontrarás información que te ayudará a extraer datos de la web. En la sección «Playground», puedes probar los resultados con diferentes parámetros, y si deseas saber más sobre cómo utilizar la API, puedes echar un vistazo a la documentación.

Por ahora, nos interesa la clave de acceso. Esta clave se utilizará como parámetro en nuestro proyecto para autenticarnos en la API.

Ten cuidado de no compartirla con nadie, ya que es tu pequeño secreto, pero si crees que la clave de acceso se ha visto comprometida, puedes restablecer la clave de la API en cualquier momento pulsando el botón que se muestra arriba.

Integra WebScrapingAPI en tu proyecto

En este paso, tendremos que preparar nuestro proyecto para el scraping. Puedes utilizar el IDE y el lenguaje de programación que más te convengan, pero para este ejemplo, vamos a utilizar WebStorm como IDE, y el código se escribirá en NodeJS.

1. Instala los siguientes paquetes:

  • got: se utiliza para realizar solicitudes HTTP
  • jsdom: útil para el análisis de HTML
  • csv-writer: para almacenar los datos extraídos en un archivo CSV

Para instalar los paquetes anteriores, simplemente utiliza la siguiente línea de comando en el terminal de tu proyecto: npm install got jsdom csv-writer

2. Configura los parámetros para tus solicitudes

Aquí especificaremos la URL del sitio web que queremos rastrear; en nuestro caso, será Yell y, por supuesto, la clave de acceso para que 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. Realiza la solicitud

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

La solicitud se enviará a WebScrapingAPI junto con los parámetros que hemos configurado anteriormente, y recibiremos una respuesta que contiene el HTML sin procesar de la página rastreada. A continuación, tendremos que ver cómo localizar la información que necesitamos dentro del HTML.

4. Inspeccionar elementos

Aquí debemos navegar por el sitio web que queremos rastrear y utilizar las Herramientas de desarrollador para buscar los elementos que contienen la información de cada negocio; en nuestro caso, cada elemento tiene la clase «businessCapsule--mainRow».

En las imágenes mostradas anteriormente, nos adentramos en el elemento del artículo de negocio para observar que el nombre de cada negocio se encuentra en la etiqueta con la clase «businessCapsule--name».

Repitiendo este proceso, encontraremos el número de teléfono en el elemento con la clase «business--telephoneNumber» y las valoraciones media y total se encuentran en los elementos con las clases «startRating--average» y «starRating--total», respectivamente.

5. Análisis del HTML

JSDOM nos ayudará a analizar la información proporcionada por WebScrapingAPI, ya que devolverá la página completa en formato HTML.

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

6. Filtrado de resultados

En esta fase, recorreremos todos los elementos que tengan la clase «businessCapsule--mainRow» y extraeremos la información de los elementos de los que hemos hablado anteriormente. Los datos extraídos se añadirán entonces como un objeto a una 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. Almacenar los datos

Almacenar los datos en un archivo CSV parece una buena solución y aquí es donde csv-writer nos echará una mano. Tenemos que especificar la ruta y el nombre del archivo CSV en el parámetro path y en el parámetro header, y tendremos que especificar una lista de objetos. Cada objeto representará una columna de nuestro archivo CSV. La propiedad title de estos objetos representa el título de cada columna, mientras que la propiedad id debe coincidir con las propiedades de los objetos de nuestra lista de clientes potenciales.

Ahora, si envolvemos todo el código en una función async y añadimos un bucle para extraer las primeras 5 páginas de empresas, el código debería quedar así:

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

})();

¡Éxito!

¡Buen trabajo! Has terminado de recopilar información sobre clientes potenciales.

Deja que WebScrapingAPI se convierta en el mejor aliado de tu negocio

Esta es una forma rápida de crear tu propio grupo de clientes potenciales y socios comerciales. Además de generar clientes potenciales, WebScrapingAPI también puede ayudarte en otras situaciones. Puedes obtener más información al respecto en nuestro blog.

En función de tu proyecto, WebScrapingAPI ofrece varios paquetes que se adaptan a tus necesidades. Si aún no estás convencido de cómo nuestro producto puede beneficiar a tu negocio, ¿por qué no pruebas primero el plan gratuito? Ofrece 1000 llamadas a la API gratuitas para que puedas empezar.

Acerca del autor
Robert Munceanu, Desarrollador full-stack @ WebScrapingAPI
Robert MunceanuDesarrollador full-stack

Robert Munceanu es desarrollador full stack en WebScrapingAPI, donde colabora en todas las áreas del producto y ayuda a crear herramientas y funciones fiables que respaldan la plataforma.

Empieza a crear

¿Estás listo para ampliar tu recopilación de datos?

Únete a más de 2000 empresas que utilizan WebScrapingAPI para extraer datos de la web a escala empresarial sin ningún gasto de infraestructura.