如何使用Go秒爬博客园100页新闻
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章将为大家详细讲解有关如何使用Go秒爬博客园100页新闻,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。利用go语言的协程并发优势爬取网页速度相当之快,博客园1
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
鸣梁网络技术
查询数据库最近操作
网络安全热门研究方向
供应优惠的聊天软件开发
手机聊天软件开发
将数据存到数据库 安卓开发
十八般武艺下载软件开发
宝山区品牌软件开发品质保障
那坡县传奇网络技术有限公司
计算机网络技术的考试
公安部公民信息数据库比对无效
怎样连接手机数据库
UDIETOO下载软件开发
获取字符串中某一部分数据库
网络安全谈谈你的看法
如何解除表格数据库保护
上海兢祥网络技术
美国网络安全工程师证
人工智能和网络安全
服务器多节点批量管理器
华为软件开发面试题目
什么是业务数据库
软件开发薪酬报告 2020
软件开发有加班费吗
先驱者改了eac连接不上服务器
南京环保软件开发怎么样
宝鸡有哪些软件开发公司
望远县软件开发定制
广东网络技术服务案例
保险理赔显示服务器提交失败