My Computer Programs

(Go lang) web page get, KOSPI200 시세 얻기

steloflute 2012. 8. 12. 15:02

Getting koscom web page data using go lang


package main

import (
 "fmt"
 "io/ioutil"
 "log"
 "net/http"
 "regexp"
 "time"
)

func main() {
 re, _ := regexp.Compile("KOSPI200.*</font>")
 for {
  now := time.Now()
  fmt.Println(now)
  res, err := http.Get("http://kosdb.koscom.co.kr/main/jisuticker.html")
  if err != nil {
   log.Fatal(err)
  }

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
   log.Fatal(err)
  }

  res.Body.Close()
  sbody := string(body)
  // dlist := string(re.ReplaceAll([]byte(sbody), []byte("")))
  dlist := re.FindString(sbody)
  fmt.Println(dlist)

  if now.Hour() <= 8 || now.Hour() >= 15 {
   fmt.Println()
   for now.Hour() <= 8 || now.Hour() >= 15 {
    time.Sleep(1 * time.Second)
    now = time.Now()
   }
  } else {
   time.Sleep(60 * time.Second)
  }

 }
}


 

showindex.go

 

showindex.exe



locale-dependent string test:


package main


import (

"fmt"

"io/ioutil"

"log"

"net/http"

"os"

"regexp"

"time"

)


func main() {

re, _ := regexp.Compile("KOSPI200.*</font>")

for {

now := time.Now()

fmt.Println(now)

res, err := http.Get("http://kosdb.koscom.co.kr/main/jisuticker.html")

if err != nil {

log.Fatal(err)

}

body, err := ioutil.ReadAll(res.Body)

if err != nil {

log.Fatal(err)

}

res.Body.Close()

q := re.Find(body)

fmt.Printf("%s\n", q)

os.Stdout.Write(q)

ioutil.WriteFile("foo.txt", q, 0) // ok

time.Sleep(60 * time.Second)

}

}



change encoding EUC-KR -> UTF-8:

package main

import (
"fmt"
"io/ioutil"
"log"
"net/http"
"regexp"
"time"
"golang.org/x/text/encoding/korean"
)

func main() {
re, _ := regexp.Compile("KOSPI200.*</font>")
for {
now := time.Now()
fmt.Println(now)
res, err := http.Get("http://kosdb.koscom.co.kr/main/jisuticker.html")
if err != nil {
log.Fatal(err)
}
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatal(err)
}
res.Body.Close()
found := re.Find(body)
decoded, err := korean.EUCKR.NewDecoder().Bytes(found)
fmt.Printf("%s\n", decoded)
time.Sleep(60 * time.Second)
}
}


'My Computer Programs' 카테고리의 다른 글

(Windows) Clock  (0) 2012.08.24
(python) triangle  (0) 2012.08.18
(Home App) Simple Home  (0) 2012.07.31
Javascript Interpreter  (0) 2012.07.28
(bash) triangle  (0) 2012.07.24