一个基于 golang 的爬虫电影站

Go Movies

golang + redis 实现的影站(低级爬虫)。无管理后台,效果站: https://go-movies.hzz.cool/ 支持手机端访问播放

内置自动爬虫,基本满足日常看片需求。

Github地址

https://github.com/hezhizheng/go-movies

首页效果

img

使用安装

# 下载
git clone https://github.com/hezhizheng/go-movies

# 进入目录
cd go-movies

# 生成配置文件(默认使用redis db10的库,可自行修改app.go中的配置)
cp ./config/app.go.backup ./config/app.go

# 启动 (首次启动会自动开启爬虫任务)
go run main.go 
or
# 安装 bee 工具
bee run

# 如安装依赖包失败,请使用代理
export GOPROXY=https://goproxy.io,direct
or
export GOPROXY=https://goproxy.cn,direct

访问
http://127.0.0.1:8899

开启爬虫

  • 直接访问链接 http://127.0.0.1:8899/movies-spider (开启定时任务,定时爬取就好)
    • 已内置定时爬虫,默认凌晨一点开启爬虫(可修改配置文件cron.timing_spider表达式)
  • 消耗:Windows 下 cup 10% 左右,内存 40mb 左右
  • 网络正常的情况下,爬虫完毕耗时大概21分钟左右(存在部分资源爬取失败的情况)

Tools

注意

# 修改静态文件/static  、 views/hero 需要先安装包的依赖,执行以下编译命令,更多用法可参考官方redame.md

# https://github.com/rakyll/statik
statik -src=xxxPath/go_movies/static -f 

# https://github.com/shiyanhui/hero
hero -source="./views/hero"

编译可执行文件(跨平台)

# 用法参考 https://github.com/mitchellh/gox
# 生成文件可直接执行 Linux
gox -osarch="linux/amd64" 
......
  • 提供win64、Linux64的已编译的文件下载 (请自行编译)

使用请确保redis为开启状态,默认使用 DB10,启动成功之后会自动执行爬虫,可自行访问 http://127.0.0.1:8899/movies-spider 进行爬虫

微云 (推荐微云+proxyee-down, 原来go版本已经在开发中了…)

img

Docker 部署(使用docker-compose可直接忽略该步骤)

# 安装 redis 镜像(已有可以忽略) 
sudo docker pull redis:latest

# 启动redis容器
# 根据实际情况分配端口 -p 宿主机端口:容器端口
sudo docker run -itd --name redis-test -p 6379:6379 redis

# 修改 app.go 的redis 连接地址为容器名称
"addr":"redis-test"

# 编译go-movies
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中保持一致
"addr":"redis-test"

# 编译go-movies
gox -osarch="linux/amd64"

# 运行
sudo docker-compose up -d

打开游览器访问 http://127.0.0.1:8899 即可看见网站效果

目录结构参考beego设置

TODO

Other

许多Go的原理还没弄懂,有精力会慢慢深究下。写得很潦草,多多包涵。

本作品采用《CC 协议》,转载必须注明作者和本文链接
hezhizheng
本帖由系统于 4年前 自动加精
hezhizheng
讨论数量: 12

不f墙没法用啊

[root@VM_0_11_centos go-movies]# go run main.go
go: github.com/PuerkitoBio/goquery@v1.5.0: Get https://proxy.golang.org/github.com/%21puerkito%21bio/goquery/@v/v1.5.0.mod: dial tcp 172.217.24.17:443: i/o timeout
4年前 评论
hezhizheng

@lovecn 使用代理就好了

export GOPROXY=https://goproxy.io
export GOPROXY=https://goproxy.cn
4年前 评论
lovecn 4年前
hezhizheng

页面数据多加了一层缓存,目前访问应该快了不少 :neutral_face:

4年前 评论

学习一下 :thumbsup:

4年前 评论
hezhizheng

编译成可执行文件也是需要折腾一下的 :relieved:

试了 go-bindata 结果是直接换了模板引擎 hero 。。。。。。

4年前 评论

里面有 adult movie ,小心点哦

4年前 评论

logo配色可以说是老司机了

3年前 评论

是大人都喜欢的那种片吗

3年前 评论
hezhizheng

@jxlwqq 能认出来的也可以说是老司机了 :smirk:

3年前 评论
hezhizheng

@EthanWell 大人看的片简称:大片 :smile:

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!