项目地址
https://github.com/736248591/hdu_rank
说明
HDU_Rank是一款基于基于Flask、Vue.js和BootstrapVue的杭电刷题排行榜爬虫。
DEMO页面:
注意:由于本项目中使用到了Python3的uWSGI库,因此只能运行在Linux平台上面。
快速入门
# 依赖包
yum install libffi-devel -y
# 安装Python3(如果已经安装可以跳过)
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -zxvf Python-3.7.3.tgz
cd Python-3.7.3
./configure
make && make install
# 安装LNMP环境(如果已经安装可以跳过)
wget http://soft.vpser.net/lnmp/lnmp1.6beta.tar.gz
tar -zxvf lnmp1.6beta.tar.gz
cd lnmp1.6beta
./install.sh
# 其中MySQL版本建议选择MySQL8,其余根据需求选择
# 安装screen和git(如果已经安装可以跳过)
yum install screen git vim
# 安装所需的PIP库
pip3 install flask pymysql requests uWSGI
# 增加hdurank的用户名和组
/usr/sbin/groupadd hdurank
/usr/sbin/useradd -g hdurank hdurank
# 克隆本项目
git clone https://github.com/736248591/hdu_rank.git
# 建立数据库
cd hdu_rank
mysql -u你的数据库用户名 -p你的数据库密码 < hdu_rank.sql
# 新建域名
lnmp vhost add
# 按照提示填写你的域名和项目本地存放的地址。注意,网站的根目录填写的是hdu_rank/static
# 编辑NGINX的配置
vim /usr/local/nginx/conf/vhost/你的域名.conf
# 在server的子级location的同级加入以下内容。
location ~* /api/{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5007;
client_max_body_size 35m;
}
# 重启nginx服务器
lnmp nginx restart
# 开启新的一个screen,这样在关闭终端以后程序不会被关闭
screen -R hdu_rank
# 创建管理员密码
vim admin.key
# 启动服务器
uwsgi --ini uwsgi.ini
进阶开发
API接口
{
"status": 操作状态 Boolean,
"msg": 错误原因 (当状态为false时,拥有这个字段)string,
"users": 用户列表(当状态为True时,拥有这个字段)
[
[
id 用户ID unsigned int,
name 姓名 string,
account 账号 string,
motto 格言 string,
solved_num 题数 int,
status 状态 union("unchecked","fetching","active")
]
]
}
字段名 | 数据类型 | 默认值 | 描 述 |
---|---|---|---|
name | string(8) | 姓名 | |
account | string(64) | 账号 | |
motto | string(255) | 格言 |
响应数据:
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
字段名 | 数据类型 | 默认值 | 描 述 |
---|---|---|---|
id | unsigned int | 用户ID |
响应数据:
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
字段名 | 数据类型 | 默认值 | 描 述 |
---|---|---|---|
pwd | string | 管理员密码 字段=sha3-512(PWD+time%10000+PWD) |
响应数据:
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
字段名 | 数据类型 | 默认值 | 描 述 |
---|---|---|---|
id | unsigned int | 用户ID |
响应数据:
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string,
"is_admin":是否已经登录管理员权限 Boolean
}
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
}
{
"status": 操作状态 Boolean,
"mgs": 错误原因 (当状态为false时,拥有这个字段)string
"crawl_status": 爬虫状态 union("runable","running","sleeping","stopped")
}
手动编译客户端
安装Node.js和Yarn
cd hdu_rank
yarn global add @vue/cli
yarn install
yarn build
更新日记
2019年5月26日
-
升级了依赖包的版本,解决安全隐患。
-
修复了数据库文件导入的BUG。
-
添加了说明文档中python3.7需要的依赖。
-
未创建管理员密码错误。
-
添加了网站的图标和标题。
2019年4月9日
1.0 初次发布