Initial commit

main
Yann Verry 2021-09-03 22:31:55 +07:00
commit f26f579e44
Signed by: yann
GPG Key ID: 19754E8692B8416C
4 changed files with 81 additions and 0 deletions

@ -0,0 +1,5 @@
Tout Mon Enfant
===============
Scrape blog

@ -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
)

@ -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=

@ -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")
}
}