项目简介
本项目是运用Go语言与Redis构建的电影网站系统,具备低级爬虫功能。无需管理后台,支持手机端访问播放。静态文件与Go文件统一编译,运行仅依赖编译后的可执行二进制文件和Redis。系统内置自动爬虫定时任务,基本能满足日常观影需求。
项目的主要特性和功能
- 多模式爬虫:支持网页爬虫与API请求两种模式,可在配置文件中灵活选择,API模式能避免网页爬虫可能出现的IP被封问题。
- 数据存储:利用Redis进行数据的缓存与持久化,采用Zset存储分类信息、Hash存储电影具体信息、String缓存页面数据。
- 前端展示:借助Go的hero模板引擎生成HTML页面,实现电影搜索、详情查看及播放等功能,支持响应式布局。
- 定时任务:内置定时爬虫任务,默认凌晨一点开启,可通过配置文件修改执行时间,还能发送钉钉通知。
安装使用步骤
常规启动
- 进入目录:
cd go-movies
。 - 生成配置文件:
cp./config/app.go.backup./config/app.go
,并根据需求修改其中的配置,如Redis连接信息、爬虫路由、定时任务表达式等。 - 启动程序:执行
go run main.go
或安装bee
工具后执行bee run
启动程序。若安装依赖包失败,可设置代理export GOPROXY=https://goproxy.io,direct
或export GOPROXY=https://goproxy.cn,direct
。 - 访问网站:通过浏览器访问
http://127.0.0.1:8899
查看网站效果。
Docker部署
手动部署
- 若未安装Redis镜像,执行
sudo docker pull redis:latest
进行安装。 - 启动Redis容器:
sudo docker run -itd --name redis-test -p 6379:6379 redis
。 - 修改
app.go
的Redis连接地址为容器名称"addr":"redis-test"
。 - 编译项目:
gox -osarch="linux/amd64"
。 - 构建镜像:
sudo docker build -t go-movies-docker-scratch.
。 - 启动容器:
sudo docker run --link redis-test:redis -p 8899:8899 -d go-movies-docker-scratch
。
docker-compose一键启动
- 修改
app.go
的Redis连接地址为容器名称,确保与docker-compose.yml
中一致。 - 编译项目:
gox -osarch="linux/amd64"
。 - 运行:
sudo docker-compose up -d
。 - 打开浏览器访问
http://127.0.0.1:8899
查看网站效果。
注意事项
- 请确保Redis服务已安装并运行,默认使用DB10。
- 程序启动后会自动执行爬虫任务,也可访问
http://127.0.0.1:8899/movies-spider
手动开启。 - 若修改静态文件或模板文件,需按对应工具要求执行编译命令。
- 可使用
gox
工具进行跨平台编译。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】