Lädt...


🔧 Explorando el Web Scraping con Golang a través de Colly


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

¡Hola, Gopher! 🌐 Hoy quiero compartir contigo una de mis experiencias más recientes usando un framework de Golang que me ha encantado: ¡Colly! Si alguna vez has necesitado hacer web scraping, ya sabes lo importante que es contar con herramientas eficientes y fáciles de usar. Colly es justamente eso y más. 🚀

¿Qué es Colly?

Colly es un framework de web scraping para Golang que te permite extraer datos de sitios web de manera rápida y sencilla. Una de las cosas que más me gustan de Colly es su simplicidad y potencia. Puedes ponerlo a trabajar en minutos y obtener resultados impresionantes sin mucha complicación.

Características principales de Colly:

  • Fácil de usar: Una API sencilla que te permite configurar y ejecutar tus scrapers rápidamente.
  • Altamente eficiente: Maneja múltiples solicitudes concurrentes sin sudar.
  • Extensible: Con soporte para middlewares, puedes personalizar tu scraping fácilmente.
  • Rápido y seguro: Diseñado para ser rápido y evitar ser bloqueado por los sitios que scrapeas.

Manos a la obra: Un ejemplo básico

Para mostrarte lo fácil que es empezar con Colly, vamos a hacer un ejemplo básico donde scrapeamos los títulos de los posts más recientes de dev.to. 🎉

Primero, necesitamos instalar Colly. Si no lo tienes, puedes hacerlo con:

go get -u github.com/gocolly/colly

Con Colly instalado, vamos a escribir un pequeño script. Lo primero es importar los paquetes necesarios y configurar nuestro scraper:

package main

import (
    "fmt"
    "log"

    "github.com/gocolly/colly"
)

func main() {
    // Crear un nuevo colector
    c := colly.NewCollector()

    // Obtenemos todos los títulos con etiqueta h2
    c.OnHTML("h2.crayons-story__title", func(e *colly.HTMLElement) {
        fmt.Println("Título encontrado:", e.Text)
    })

    // Manejar errores
    c.OnError(func(_ *colly.Response, err error) {
        log.Println("Algo salió mal:", err)
    })

    // Iniciar el scraping en la página principal de dev.to
    c.Visit("https://dev.to")
}

Explicando el código

  1. Importaciones y setup: Importamos los paquetes colly y los necesarios de Go. Luego, creamos un nuevo colector con colly.NewCollector().

  2. Definiendo el comportamiento: Utilizamos c.OnHTML para definir qué hacer cuando encontramos ciertos elementos. En este caso, estamos buscando todos los elementos h2 con la clase crayons-story__title, que es donde dev.to normalmente coloca los títulos de los posts.

  3. Manejo de errores: Con c.OnError, nos aseguramos de manejar cualquier error que pueda ocurrir durante el scraping.

  4. Visitando la página: Finalmente, usamos c.Visit para iniciar el scraping en la página principal de dev.to.

Resultados

Al ejecutar este script, deberías ver los títulos de los posts más recientes impresos en la consola. 🎉 ¡Fácil y rápido! Puedes modificar el selector h2 para ajustar qué información deseas extraer.

Ejecución del script

Para ejecutar el script, simplemente abre tu terminal y corre:

go run main.go

Si todo va bien, deberías ver algo como esto en tu consola:

Título encontrado: Aprende Golang en 10 días
Título encontrado: Consejos para desarrolladores juniors

Conclusión

Colly es una herramienta poderosa para cualquier desarrollador que necesite hacer web scraping en Golang. Su simplicidad y eficiencia hacen que sea una elección excelente tanto para proyectos pequeños como grandes. Espero que este pequeño tutorial te haya dado una buena introducción a Colly y te anime a probarlo en tus propios proyectos.

¿Tienes alguna experiencia usando Colly o alguna otra herramienta de scraping? ¡Déjame tus comentarios abajo! 👇

¡Hasta la próxima, y feliz scraping! 🕷️🕸️

...

🔧 Explorando el Web Scraping con Golang a través de Colly


📈 135.02 Punkte
🔧 Programmierung

📰 Scrapestack Web Scraping API (Review): Powerful Real-time Engine for Website Scraping


📈 33.2 Punkte
Web Tipps

📰 Scrapestack Web Scraping API (Review): Powerful Real-time Engine for Website Scraping


📈 33.2 Punkte
🖥️ Betriebssysteme

🔧 Aplicación de LLM en la Comprensión de Imágenes a través de SVG's


📈 32.27 Punkte
🔧 Programmierung

🔧 ** Breaking Code: Buenas Prácticas de Desarrollo de Software a través de Breaking Bad**⚗️


📈 32.27 Punkte
🔧 Programmierung

🔧 Scraping Users Social Behavior to Personalize Retail Stores Using Data Scraping


📈 29.36 Punkte
🔧 Programmierung

🔧 Next.js 14 Booking App with Live Data Scraping using Scraping Browser


📈 29.36 Punkte
🔧 Programmierung

🔧 GoLang JWT Authentication Using Golang Gin Framework with MongoDB


📈 25.21 Punkte
🔧 Programmierung

🔧 How to use GoLang in Flutter Application - Golang FFI


📈 25.21 Punkte
🔧 Programmierung

🕵️ GitHub Security Lab: Golang : Improvements to Golang SSRF query


📈 25.21 Punkte
🕵️ Sicherheitslücken

🎥 DEF CON 30 - The Dark Tangent and MK Factor - Welcome to DEF CON and The Making of the DEF CON Badge


📈 24.32 Punkte
🎥 IT Security Video

🎥 DEF CON 27 Conference - DEF CON NOC - All the things you wanted to know about the DEF CON NOC


📈 24.32 Punkte
🎥 IT Security Video

🔧 Explorando o Método concat() em JavaScript


📈 24.04 Punkte
🔧 Programmierung

🔧 GenAI Series: Explorando AWS Nitro y SRD


📈 24.04 Punkte
🔧 Programmierung

🔧 # Explorando o Poder dos Decorators em TypeScript e NestJS


📈 24.04 Punkte
🔧 Programmierung

🔧 Desafio de Código 01 - Explorando Serviços de Telefonia


📈 24.04 Punkte
🔧 Programmierung

🔧 Criatividade Ampliada: Explorando a Ferramenta Creatie.ia


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando a Compreensão de Código, com Fernando Castor


📈 24.04 Punkte
🔧 Programmierung

🔧 Especial 1 de Maio -Explorando a Diversidade da TI


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando o Linux - VIM e NANO


📈 24.04 Punkte
🔧 Programmierung

🔧 Cogumelos Mágicos: explorando e tratando dados nulos com Mage


📈 24.04 Punkte
🔧 Programmierung

🔧 Do Manual ao Automatizado: Explorando o Potencial do ModelMapper


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando o Comando `pub unpack` no Dart


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando a integração entre Google Sheets e Python para automação de dados no sheets


📈 24.04 Punkte
🔧 Programmierung

🔧 São Carlos Educativa: Explorando as Universidades e Centros de Estudo


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando os Conceitos Básicos do Kotlin: Parte I


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando los Fundamentos de la Programación Orientada a Objetos en C#


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando a Poderosa Funcionalidade de Jobs no Laravel: Um Guia Completo


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando Novos Horizontes: Minha Jornada no Desenvolvimento Java


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando el Ecosistema de JavaScript: Un Mapa Completo de Frameworks y Librerías


📈 24.04 Punkte
🔧 Programmierung

🔧 Desbloqueie o Poder do IEx: Explorando o Shell Interativo do Elixir


📈 24.04 Punkte
🔧 Programmierung

🔧 Explorando as principais áreas da programação


📈 24.04 Punkte
🔧 Programmierung

matomo