Skip to content

grj1046/hotspot-online

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hotspot-online

各大平台热榜聚合-实时更新

//百度今日热点事件排行榜 //百度实时热点排行榜 //微博热点排行榜 //贴吧热度榜单 //V2EX热度榜单 //知乎全站热榜

00.简介

本项目来自于 https://github.com/OpsFans/hotspot-online 朋友写论文要用到这个,部署到CoreOS的时候各种不如意,最近在学习golang,使用golang重写了一下,golang天生亲和Docker,非常奈斯。

演示地址:http://hotspot.280min.com/ (不一定可以访问)

01.采集数据 使用的 goruntine 默认每10分钟更新一次数据(可通过环境变量HOTSPOT_TIMER_DURATION设置时间,单位分钟。)

  1. 使用http模块发送请求获得网页数据,

  2. 使用 github.com/PuerkitoBio/goquery 包处理html并获取想要的数据

  3. 使用 golang.org/x/text/encoding/simplifiedchinese 包来处理GB2312编码的转换

  4. 本地化处理(写入到本地json文件,已弃用,改为直接存到内存)

02.处理并返回数据 (可通过环境变量HOTSPOT_HTTP_PORT设置端口,默认值80)

接口 /hotspot 会将本地json文件读取并按照需求返回为json格式接口 返回格式如下:

[{
    FileName: '',
    Content: [{
        Name: '',
        Url: ''
    }]
}]

03.前端展示

前端采用Bootstrap4 来展示,用jquery.getJSON从远程接口获取数据,来渲染页面。

04.添加对Docker的支持

使用的golang alpine生成的镜像有点大 366MB 改为使用Scratch作镜像,大小只有5MB 奈斯

Docker-compose.yml的模式没去研究

其它有用无用的东西

https://golang.org/pkg/embed/

https://harsimranmaan.medium.com/embedding-static-files-in-a-go-binary-using-go-embed-bac505f3cb9a

https://blog.cloud66.com/how-to-create-the-smallest-possible-docker-image-for-your-golang-application/

RUN apk --no-cache add ca-certificates \
  && update-ca-certificates
	tr := &http.Transport{
		TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
	}
	client := &http.Client{Transport: tr}
	request, _ := http.NewRequest(http.MethodGet, weburl, nil)
	response, err := client.Do(request)
	if err != nil {
		return nil, errors.New("NewRequest: " + err.Error())
	}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published