- package main
- import "io/ioutil"
- import "net/http"
- import "fmt"
- import "regexp"
- import "time"
- func testget(url string) string{
- resp, err := http.Get(url)
- if err != nil {
- fmt.Println(err)
- }
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err)
- }
- return get_title(string(body))
- }
- func testget2(url string, chann chan string ){
- resp, err := http.Get(url)
- if err != nil {
- fmt.Println(err)
- }
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err)
- }
- chann <- get_title(string(body))
- }
- func get_title(body string) string{
- re := regexp.MustCompile("<title>(.*)</title>")
- a := re.FindStringSubmatch(body)
- if len(a) != 0{
- return a[1]
- }
- return ""
- }
- func current_unixtimestamp() int32{
- return int32(time.Now().Unix())
- }
- func main(){
- urllist := [] string {"http://www.baidu.com","http://www.17173.com","http://www.hao123.com","http://www.126.com","http://www.oschina.net","http://www.simapple.com"}
- single_start := current_unixtimestamp()
- for _,v := range urllist {
- fmt.Println(v)
- baidubody := testget(v)
- fmt.Println(baidubody)
- }
- single_end := current_unixtimestamp()
- fmt.Printf("use %d seconds\\n***********************************\\n", single_end-single_start)
- chann := make(chan string, 300)
- single_start = current_unixtimestamp()
- for _,v := range urllist {
- fmt.Println(v)
- go testget2(v, chann)
- go fmt.Println(<-chann)
- }
- single_end = current_unixtimestamp()
- fmt.Printf("use %d seconds", single_end-single_start)
- }
- //该片段来自于http://www.codesnippet.cn/detail/250220148781.html
来源: http://www.codesnippet.cn/detail/250220148781.html