package main import ( "fmt" "io/ioutil" "net/http" "regexp" "strings" "github.com/PuerkitoBio/goquery" ) func Getlist(url string) []string { var stocks []string req, _ := http.NewRequest("GET", url, nil) // 设置header req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3") req.Header.Set("Referer", "https://movie.douban.com/") req.Header.Set("Connection", "keep-alive") resp, err := (&http.Client{}).Do(req) if err != nil { panic(err) } doc, err := goquery.NewDocumentFromReader(resp.Body) if err != nil { panic(err) } doc.Find("#quotesearch>ul>li>a"). Each(func(i int, s *goquery.Selection) { //fmt.Printf("%v", s) stock := s.Text() //正则匹配0 3 6 类型的代码 matched, _ := regexp.MatchString(`.+?[0|3|6]\d{5}.+?`, stock) if matched { stocks = append(stocks, stock) } }) return stocks } func main() { url := "http://quote.eastmoney.com/stock_list.html" var stocks []string stocks = Getlist(url) //fmt.Println(stocks) a := strings.Join(stocks[46:], ",") fmt.Println(a) if err := ioutil.WriteFile("./stock.txt", []byte(a), 0644); err != nil { fmt.Println(err) } }
原文:https://www.cnblogs.com/pu369/p/13045644.html