没事的时候跑两把,穷人专用。

package mainimport ("bytes""fmt""github.com/PuerkitoBio/goquery""log""math""net/http""runtime""strconv""strings""sync""time"
)func Scraper(page string, now int64) string {// Request the HTML page.ScrapeURL := "https://51.ruyo.net/page/" + pageclient := &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 documentdoc, err := goquery.NewDocumentFromReader(res.Body)if err != nil {log.Fatal(err)}// Find the review itemsvar buffer bytes.Bufferbuffer.WriteString("**********Scraped page " + page + "**********\n")doc.Find(".panel-body .entry-header").Each(func(i int, s *goquery.Selection) {// For each item found, get the band and titletitle := s.Find("h3").ChildrenFiltered("a").Text()url, _ := s.Find("h3").ChildrenFiltered("a").Attr("href")etime, _ := s.Find("div").ChildrenFiltered("time").Attr("datetime")etime = strings.Replace(etime, "+00:00", "", -1) + "Z"dt, _ := time.Parse(time.RFC3339, etime)intdt := dt.Unix()difftime := math.Abs(float64(now - intdt))//fmt.Println(now, intdt, difftime)if difftime <= 2592000 {buffer.WriteString("Review " + strconv.Itoa(i) + ": " + title + "\n" + url + "\n" + etime + "\n")}})return buffer.String()
}func main() {runtime.GOMAXPROCS(runtime.NumCPU())now := time.Now().Unix()ch := make(chan string, 5)wg := &sync.WaitGroup{}var page stringfor i := 1; i < 6; i++ {wg.Add(1)go func(i int) {page = strconv.Itoa(i)fmt.Printf("Scraping page %s...\n", page)ch <- Scraper(page, now)wg.Done()}(i)}wg.Wait()//print resultfor i := 0; i < 6; i++ {fmt.Println(<-ch)}
}

Golang福利爬虫相关推荐

  1. 基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息

    基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息 注意:仅供学习交流,任何非法使用与作者无关! 目录 基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息 一.背景与取材 二. ...

  2. Golang网络爬虫框架gocolly/colly(三)

    熟悉了<Golang 网络爬虫框架gocolly/colly 一>和<Golang 网络爬虫框架gocolly/colly 二>之后就可以在网络上爬取大部分数据了.本文接下来将 ...

  3. golang http 返回html文件_用Golang写爬虫(三) - 使用goquery

    原文地址: https://strconv.com/posts/web-crawler-exercise-3/ 在写爬虫的时候,想要对HTML内容进行选择和查找匹配时通常是不直接写正则表达式的:因为正 ...

  4. Golang 网络爬虫框架gocolly/colly

    gocolly是Golang实现的网络爬虫框架,名列go版爬虫程序榜首. 安装 go get -u github.com/gocolly/colly/... 例子 import ( "fmt ...

  5. Golang 并发爬虫 爬取某著名游戏媒体

    第一次在掘金水文章,有一点点小激动,哈哈 本次使用Golang抓取著名(la ji)游戏媒体 游民星空 主要使用的第三方包是 goquery ,来解析HTML,如果你没有使用过goquery也不要紧, ...

  6. golang微博爬虫-无登录获取cookie抓取微博

    使用爬虫框架 gathertool 框架地址: https://github.com/mangenotwork/gathertool 框架下载: go get github.com/mangenotw ...

  7. Golang 网络爬虫框架gocolly/colly 四

    爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟.回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook ...

  8. GoLang - colly爬虫框架

    大家好,我是TheWeiJun.很高兴又和大家见面了,国庆假期马上就要结束了,在国庆假期里小编看了下colly框架,故这篇文章中将提到colly的使用及分析:欢迎各位读者多多阅读与交流! 特别声明:本 ...

  9. 福利爬虫妹子图之获取种子url

    import os import uuid from lxml import html import aiofiles import logging from ruia import Spider, ...

最新文章

  1. SHAREPOINT爬网设置
  2. 如何让滚动条出现在左边
  3. myBatis异常提示For input string: {1=null}
  4. FileZilla Server : FTP and FTPS Server
  5. 大数据WEB阶段(二十)更新丢失
  6. mysql的natural join_MySQL基础之Natural Join用法
  7. java os库_java-Mac OS X上的JNotify?
  8. linux系统中怎么复制,linux下如何屏幕拷贝?
  9. java se环境变量_Windows 7中配置JDK(Java SE)环境变量
  10. android缩放动画的两种实现方法
  11. javase转javaee(java web)
  12. 【计算几何】求三角形外接圆的周长、面积公式
  13. 网站克隆工具_全员惊艳!强推5款高质量的小众实用网站
  14. Flea CodeForces - 32C (思维)
  15. 1. 学校在线考试系统
  16. RTX3060显卡比1060跑深度学习慢?
  17. 伺服阀放大器|通用型电液伺服阀放大器|伺服阀放大器厂家
  18. 第十九届乐博杯机器人科技嘉年华!圆满落幕!
  19. Problem E: 类模板Sample
  20. 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

热门文章

  1. 5g的八大关键指标_2019百度沸点十大科技热词出炉,AI、5G、智能家居......实力霸榜!...
  2. Allegro使用技巧(3)----PCB规则检查
  3. vue后台管理、APP项目总结集合
  4. Android试玩OpenCV
  5. 基于 SquashFS 构建 Linux 可读写文件系统
  6. squashfs 的安装与使用
  7. 详解虚拟机下三种联网模式
  8. Centos7 虚拟机联网配置
  9. 使用Hyper-v虚拟机联网配置
  10. 【linux 检测端口的命令】curl、netstat和nc命令