a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

Go秒爬博客園100頁新聞

2020-04-01 18:53:10
字體:
來源:轉載
供稿:網友

利用go語言的協程并發優勢爬取網頁速度相當之快,博客園100頁新聞標題只需一秒即可全部爬取

package mainimport ( "bytes" "fmt" "github.com/PuerkitoBio/goquery" "log" "net/http" "runtime" "strconv" "sync")func Scraper(page string) string { // Request the HTML page. ScrapeURL := "https://news.cnblogs.com/n/page/" + page client := &http.Client{} reqest, _ := http.NewRequest("GET", ScrapeURL, nil) reqest.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") reqest.Header.Set("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3") //reqest.Header.Set("Accept-Encoding", "gzip,deflate,sdch") reqest.Header.Set("Accept-Language", "zh-CN,zh;q=0.8") reqest.Header.Set("Cache-Control", "max-age=0") reqest.Header.Set("Connection", "keep-alive") reqest.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36") res, err := client.Do(reqest) if err != nil {  log.Fatal(err) } defer res.Body.Close() if res.StatusCode != 200 {  log.Fatalf("status code error: %d %s", res.StatusCode, res.Status) } // Load the HTML document doc, err := goquery.NewDocumentFromReader(res.Body) if err != nil {  log.Fatal(err) } // Find the review items var buffer bytes.Buffer buffer.WriteString("**********Scraped page " + page + "**********/n") doc.Find(".content .news_entry").Each(func(i int, s *goquery.Selection) {  // For each item found, get the band and title  title := s.Find("a").Text()  url, _ := s.Find("a").Attr("href")  buffer.WriteString("Review " + strconv.Itoa(i) + ": " + title + "/nhttps://news.cnblogs.com" + url + "/n") }) return buffer.String()}func main() { runtime.GOMAXPROCS(runtime.NumCPU()) ch := make(chan string, 100) wg := &sync.WaitGroup{} var page string for i := 1; i < 101; i++ {  wg.Add(1)  go func(i int) {   page = strconv.Itoa(i)   fmt.Printf("Scraping page %s.../n", page)   ch <- Scraper(page)   wg.Done()  }(i) } wg.Wait() //print result for i := 0; i < 101; i++ {  fmt.Println(<-ch) }}

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美∨a | 91精品国产综合久久久久久 | 国产一区二区视频在线播放 | 欧美一级在线视频 | 日本一区二区三区视频免费看 | 91亚洲综合 | 日韩视频免费看 | 美女二区 | 色婷婷一区二区三区 | 国产黄色一级片 | 不卡的av电影 | 国产一区二区视频在线观看 | 一区二区三区在线不卡 | 黄a网站 | 黄色片一区 | 亚洲经典一区二区三区 | 精品无码久久久久国产 | 久久久久久a女人 | 日韩中文字幕 | 久久国产精品视频 | 国产精品兄妹在线观看麻豆 | 色丁香在线 | 日韩视频在线观看一区 | 最新日韩av网址 | 麻豆精品国产91久久久久久 | 亚洲国产精品第一区二区 | 啪一啪免费视频 | av一区二区在线观看 | 日韩欧美在| 91精品国产91久久综合桃花 | 国产精品99久久免费观看 | 久久新视频 | 久久精品福利视频 | 蜜臀视频在线观看 | 欧美在线高清 | 色噜噜网站 | 久久99国产精品久久99大师 | 色婷婷久久久swag精品 | 国产女人和拘做受视频 | 成人在线观看一区 | 色综合av |