package main

import (
  "log"
  "net/http"
  "time"

  "github.com/PuerkitoBio/goquery"
  "gopkg.in/mgo.v2"
  //"gopkg.in/mgo.v2"
)

type Data struct {
  Name string `json:"name" bson:"name"`
Away string `json:"away" bson:"away"`
Pop int `json:"pop" bson:"pop"`
  CreatedAt time.Time `bson:"createdAt"`
}

func ExampleScrape() {
  // Request the HTML page.
  session, err := mgo.Dial("mongodb://127.0.0.1:27017")
  res, err := http.Get(
"https://www.edtguide.com/place/%E0%B8%AB%E0%B8%A1%E0%B8%A7%E0%B8%94%E0%B9%82%E0%B8%A3%E0%B8%87%E0%B8%9E%E0%B8%A2%E0%B8%B2%E0%B8%9A%E0%B8%B2%E0%B8%A5/%E0%B8%AA%E0%B8%A1%E0%B8%B8%E0%B8%97%E0%B8%A3%E0%B8%9B%E0%B8%A3%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3/view/P0";
)
  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(".archive-list article ").Each(func(i int, s *goquery.Selection) 
{
    // For each item found, get the band and title
    band := s.Find("p").Text()

    title := s.Find("h2").Text()
    log.Printf("Review %d: %s - %s\n", i, band, title)
    session.SetMode(mgo.Monotonic, true)
    d := session.DB("api").C("api")

    doc := Data{
      Name: title,
Away: band,
Pop: 1000,
    }

    err = d.Insert(doc)

    if err != nil {
      panic(err)
    }

  })

}

func main() {
  ExampleScrape()

}

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to