news是一个用Golang编写的自带服务的新闻爬虫(内容来源:喷嚏图挂)及静态页面生成工具。简单易用,方便配置。news可以将爬取生成的静态页面通过GitHub action自动发布到GitHub pages,也可以通过自带的web服务自行托管。
$ git clone git@github.com:wenkechen/news.git
$ cd news
$ go build
$ cp config.yaml.example config.yaml
项目配置
app:
port: 9999 # web服务端口
debug: false # 是否开启log(gin+gorm)
cacher: 'file' # 缓存器 file|redis
database: 'sqlite3' # 数据库 sqlite3|mysql
baseUrl: '/news' # 目录域名
pages: true # 是否为静态pages
mysql:
dsn: 'root:root@tcp(127.0.0.1:3306)/news?charset=utf8mb4&parseTime=True&loc=Local'
sqlite3:
dsn: "./data/news.db"
redis:
dsn: '127.0.0.1:6379'
log:
file: '' # There must be empty on GitHub action
app:
port: 9999 # web服务端口
debug: false # 是否开启log(gin+gorm)
cacher: 'file' # 缓存器 file|redis
database: 'sqlite3' # 数据库 sqlite3|mysql
baseUrl: '' # 目录域名
pages: false # 是否为静态pages
...
运行
$ ./news
or
$ ./news serve
爬取最新一篇文章
$ ./news latest
爬取最新一页(过早文章会关闭访问)
$ ./news page
爬取指定文章
$ ./news url :url
将数据库数据缓存到缓存器中
$ ./news cache
配置示例见config.yaml.example
$ docker-compose up -d