commit f26f579e44ebf3a422965037024ab62fd6e91817 Author: Yann Verry Date: Fri Sep 3 22:31:55 2021 +0200 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..a01a21d --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +Tout Mon Enfant +=============== + + +Scrape blog diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..21451d0 --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module toutemonapp + +go 1.17 + +require ( + github.com/PuerkitoBio/goquery v1.7.1 // indirect + github.com/andybalholm/cascadia v1.2.0 // indirect + golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..986201f --- /dev/null +++ b/go.sum @@ -0,0 +1,12 @@ +github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4= +github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= +github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= +github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= +golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go new file mode 100644 index 0000000..4121a3f --- /dev/null +++ b/main.go @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "log" + "net/http" + "os" + + "github.com/PuerkitoBio/goquery" +) + +func TouteMonAnneeBlog(schoolname string) { + + blog := "https://" + schoolname + ".toutemonecole.fr/" + // Request the HTML page. + res, err := http.Get(blog) + if err != nil { + log.Fatal(err) + } + defer res.Body.Close() + if res.StatusCode != 200 { + log.Fatalf("status code error: %d %s", res.StatusCode, res.Status) + } + + // Load the HTML document + doc, err := goquery.NewDocumentFromReader(res.Body) + if err != nil { + log.Fatal(err) + } + + // Find the review items + doc.Find(".actu_titre").Each(func(i int, s *goquery.Selection) { + // For each item found, get the title + title := s.Find("span .translatable-title").Text() + fmt.Printf("Title %d: %s\n", i, title) + }) + doc.Find(".actu_description").Each(func(i int, s *goquery.Selection) { + url, _ := s.Find(".actu_extrait div a").Attr("href") + content := s.Find("span").Text() + + fmt.Printf("Content %d: %s\n", i, content) + + fmt.Printf("URL: %s\n", url) + }) +} + +func main() { + + school, ok := os.LookupEnv("TOUTMONENFANT_SCHOOLNAME") + if ok { + TouteMonAnneeBlog(school) + } else { + fmt.Printf("TOUTMONENFANT_SCHOOLNAME var is undefined") + } +}