千家信息网

如何使用Go秒爬博客园100页新闻

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关如何使用Go秒爬博客园100页新闻,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。利用go语言的协程并发优势爬取网页速度相当之快,博客园1
千家信息网最后更新 2026年11月03日如何使用Go秒爬博客园100页新闻

这篇文章将为大家详细讲解有关如何使用Go秒爬博客园100页新闻,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

利用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) }}

关于"如何使用Go秒爬博客园100页新闻"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

博客 新闻 篇文章 更多 不错 实用 优势 内容 只需 文章 标题 知识 网页 语言 速度 参考 帮助 有关 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 科技金融是不是互联网金融 上海互联网科技有限公司 广州紫鲸互联网科技 互联网科技大会案例 广西拼得多互联网科技有限公司 海南科技产业互联网平台 银川新华互联网科技学校地址 互联网科技产品 承德科技产业互联网发展 汽车互联网创新科技园 成都铂石互联网科技做什么的 福建科技产业互联网发展 无锡工业互联网科技有限公司 沐思想互联网科技有限公司 互联网第三次科技革命特征 郑州欣桑互联网科技有限公司 唐山双旺合互联网科技产业园 数字互联网科技有限公司 陕西彩京云互联网科技有限公司 网络科技有限互联网 互联网科技金融 河南住房之家互联网科技 四川慕妮娅互联网科技有限公司 广州千川互联网科技有限公司 本届互联网大会上的黑科技 陕西云淼互联网科技公司 云鲸互联网络科技有限公司 上海互联网科技园景观 互联网高科技绘画
0