Web scraping in Go con Colly

Mattepuffo's logo
Web scraping in Go con Colly

Web scraping in Go con Colly

Colly è una libreria per Go che ci permette di eseguire il web scarping delle pagine web.

In questo articolo vediamo un paio di esempi.

Ma cominciamo con l'installazione:

go get github.com/gocolly/colly

Questo un primo esempio:

package main

import (
	"fmt"

	"github.com/gocolly/colly"
)

func main() {
	url := "https://www.mattepuffo.com/blog/"

	c := colly.NewCollector()

	c.OnHTML(".post h1", func(e *colly.HTMLElement) {
		post := e.Text
		fmt.Println(post)
	})

	c.Visit(url)
}

Qui andiamo a ricercare tutti i tag h1 che si trovano dentro i tag con classe .post.

Altro esempio:

package main

import (
	"fmt"

	"github.com/gocolly/colly"
)

func main() {
	url := "https://www.mattepuffo.com/blog/"

	c := colly.NewCollector()

	c.OnHTML(".post a[href]", func(e *colly.HTMLElement) {
		link := e.Attr("href")
		fmt.Printf("Link found: %q -> %sn", e.Text, link)
		c.Visit(e.Request.AbsoluteURL(link))
	})

	c.OnRequest(func(r *colly.Request) {
		fmt.Println("Visiting", r.URL.String())
	})

	c.Visit(url)
}

Sempre dentro .post ricerchiamo tutti i link e facciamo una richiesta HTTP.

Enjoy!


Condividi

Commentami!