Saltar al contenido
Volver al blog

Cómo captar clientes potenciales para su empresa

Robert MunceanuÚltima actualización el 6 min read
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 Munceanu

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

Raspado alternativo de datos para las finanzas: Cómo los datos web dan ventaja a los inversores
Casos de uso

Raspado alternativo de datos para las finanzas: Cómo los datos web dan ventaja a los inversores

TL;DR: El scraping de datos alternativos utiliza técnicas de recopilación web para reunir conjuntos de datos no tradicionales (precios de productos, opiniones, ofertas de empleo, registros normativos) que revelan señales del mercado antes de que aparezcan en los informes de resultados. Esta guía le guiará a través de las fuentes de datos de mayor valor, cómo crear canales de calidad financiera, la validación de la calidad de los datos y las salvaguardas de cumplimiento que necesita para mantenerse en el lado correcto de la ley.

Mihnea-Octavian Manolache20 min read
Leer artículo
¿Qué son los datos financieros? Tipos, métodos de recopilación y herramientas de análisis
Casos de uso

¿Qué son los datos financieros? Tipos, métodos de recopilación y herramientas de análisis

TL;DR: Los datos financieros son la recopilación de registros cuantitativos (ingresos, gastos, activos, pasivos, flujo de caja) que las organizaciones y los particulares utilizan para tomar decisiones económicas fundamentadas. Esta guía desglosa los cuatro estados financieros básicos, compara las fuentes de datos tradicionales y alternativas, recorre los métodos de recopilación modernos y cubre las herramientas en las que se basan los profesionales para el análisis.

Suciu Dan16 min read
Leer artículo
XPath vs Selectores CSS: Elegir el correcto
Casos de uso

XPath vs Selectores CSS: Elegir el correcto

TL;DR: Tanto XPath como los selectores CSS localizan elementos DOM, pero resuelven problemas diferentes. Los selectores CSS son más rápidos y más legibles para selecciones sencillas. XPath gana cuando se necesita recorrer el DOM en cualquier dirección, hacer coincidir contenido de texto o manejar lógica condicional compleja. La mayoría de los proyectos de producción se benefician del uso estratégico de ambos.

Mihai Maxim15 min read
Leer artículo

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.