最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go秒爬博客園100頁新聞

 更新時間:2018年09月17日 09:37:17   作者:大囚長  
利用go語言的協(xié)程并發(fā)優(yōu)勢爬取網(wǎng)頁速度相當(dāng)之快,博客園100頁新聞標(biāo)題只需一秒即可全部爬取,跟著小編一起去看看如何實現(xiàn)的,希望大家可以從中受益

利用go語言的協(xié)程并發(fā)優(yōu)勢爬取網(wǎng)頁速度相當(dāng)之快,博客園100頁新聞標(biāo)題只需一秒即可全部爬取

package main

import (
 "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)
 }
}

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Go語言使用漏桶算法和令牌桶算法來實現(xiàn)API限流

    Go語言使用漏桶算法和令牌桶算法來實現(xiàn)API限流

    為防止服務(wù)器被過多的請求壓垮,限流是一個至關(guān)重要的技術(shù)手段,下面我們就來看看如何使用漏桶算法和令牌桶算法來實現(xiàn) API 的限流吧
    2024-11-11
  • 一文帶你了解Golang中的WaitGroups

    一文帶你了解Golang中的WaitGroups

    WaitGroups是同步你的goroutines的一種有效方式。這篇文章主要來和大家聊聊Golang中WaitGroups的使用,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • golang MarshalJson的實現(xiàn)

    golang MarshalJson的實現(xiàn)

    本文主要介紹了golang MarshalJson的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • golang實現(xiàn)京東支付v2版本的示例代碼

    golang實現(xiàn)京東支付v2版本的示例代碼

    這篇文章主要介紹了golang實現(xiàn)京東支付v2版本,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 使用go gin來操作cookie的講解

    使用go gin來操作cookie的講解

    今天小編就為大家分享一篇關(guān)于使用go gin來操作cookie的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Go 使用Unmarshal將json賦給struct出錯的原因及解決

    Go 使用Unmarshal將json賦給struct出錯的原因及解決

    這篇文章主要介紹了Go 使用Unmarshal將json賦給struct出錯的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Golang中的自定義函數(shù)詳解

    Golang中的自定義函數(shù)詳解

    函數(shù)構(gòu)成代碼執(zhí)行的邏輯結(jié)構(gòu)。在Go語言中,函數(shù)的基本組成為:關(guān)鍵字func、函數(shù)名、參數(shù)列表、返回值、函數(shù)體和返回語句。
    2018-10-10
  • GO使用阿里云,解決go get下載項目慢或無法下載的情況

    GO使用阿里云,解決go get下載項目慢或無法下載的情況

    這篇文章主要介紹了GO使用阿里云,解決go get下載項目慢或無法下載的情況,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Go位集合相關(guān)操作bitset庫安裝使用

    Go位集合相關(guān)操作bitset庫安裝使用

    這篇文章主要為大家介紹了Go位集合相關(guān)操作bitset庫安裝使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go語言實現(xiàn)UDP版聊天小工具的示例詳解

    Go語言實現(xiàn)UDP版聊天小工具的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實現(xiàn)聊天小工具(UDP版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

溧水县| 西充县| 安西县| 东兰县| 云安县| 大方县| 唐河县| 陇西县| 赤峰市| 隆子县| 塘沽区| 嘉祥县| 泸定县| 高淳县| 济源市| 内乡县| 卓资县| 淳化县| 安义县| 普兰店市| 克拉玛依市| 卓资县| 泸定县| 西畴县| 通化市| 新沂市| 曲周县| 兴隆县| 泽州县| 紫云| 太保市| 兴文县| 焉耆| 涞水县| 东乡县| 枣强县| 迁西县| 泸州市| 石河子市| 新野县| 嘉义县|