// 通过列表抓取开奖结果 func fetchData() ([]entity.TwoColorBall, error) { // 抓取网页 frontHtml, err := util.DownloadHtml("http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html") if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } //log.Printf("%s", html) // 获取一共有几页 regex := regexp.MustCompile(`<p class="pg"> 共<strong>(\d+)</strong> 页`) group := regex.FindSubmatch(frontHtml) if len(group) < 1 { return nil, errors.New("分析结果页数失败") } pageCount, _ := strconv.Atoi(string(group[1])) //log.Println("共", pageCount, "页") var html string list := make([]entity.TwoColorBall, 0) for index := 1; index <= pageCount; index++ { if index == 1 { // 首页已经抓取过了 html = string(frontHtml) } else { // 抓取网页 content, err := util.DownloadHtml(fmt.Sprintf("http://kaijiang.zhcw.com/zhcw/html/ssq/list_%d.html", index)) if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } html = string(content) } // 分析Html,抓取信息 results, err := analyzeHtml(html) if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } // 把每页的分析结果添加进结果集 list = append(list, results...) } return list, nil }
// 通过列表抓取开奖结果 func fetchData() ([]entity.SuperLotto, error) { // 抓取网页 frontHtml, err := util.DownloadHtml("http://www.lottery.gov.cn/historykj/history.jspx?_ltype=dlt") if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } //log.Printf("%s", html) // 获取一共有几页 regex := regexp.MustCompile(`共\d+条记录 \d+/(\d+)页`) group := regex.FindSubmatch(frontHtml) if len(group) < 1 { return nil, errors.New("分析结果页数失败") } pageCount, _ := strconv.Atoi(string(group[1])) // log.Println("共", pageCount, "页") var html string list := make([]entity.SuperLotto, 0) for index := 1; index <= pageCount; index++ { if index == 1 { // 首页已经抓取过了 html = string(frontHtml) } else { // 抓取网页 content, err := util.DownloadHtml(fmt.Sprintf("http://www.lottery.gov.cn/historykj/history_%d.jspx?_ltype=dlt", index)) if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } html = string(content) } // 分析Html,抓取信息 results, err := analyzeHtml(html) if err != nil { log.Println("下载网页失败: ", err.Error()) return nil, err } // 把每页的分析结果添加进结果集 list = append(list, results...) } return list, nil }