For循环里调用函数不成功

bvaccc · · 3443 次点击
#1 楼 <a href="/user/gwll" title="@gwll">@gwll</a> 哈哈,搞了半天 发现是网站的限制,多次请求速度太快。
#3
更多评论
应该是有异步线程,没等返回主线程 函数退出了,在func PrintProxy里最后一行加time.Sleep(time.Second * 1)试试
#1
package main import ( &#34;fmt&#34; &#34;strconv&#34; &#34;sync&#34; &#34;github.com/PuerkitoBio/goquery&#34; ) var wg sync.WaitGroup func PrintProxy(url string) { g, e := goquery.NewDocument(url) if e != nil { fmt.Println(e) } g.Find(&#34;tr&#34;).Each(func(i int, s *goquery.Selection) { if i &gt; 0 { node := s.Find(&#34;td&#34;) IP := node.Eq(0) Port := node.Eq(1) fmt.Printf(&#34;%v:%v\n&#34;, IP.Text(), Port.Text()) } }) wg.Done() } func main() { url := &#34;http://www.kuaidaili.com/free/inha/&#34; for i := 1; i &lt; 5; i++ { u := url + strconv.Itoa(i) fmt.Println(u) wg.Add(1) PrintProxy(u) fmt.Println(&#34;++++++&#34;) } wg.Wait() }
#2