mxd's EPG 服务器端部署指南
mxd's EPG
文档不完善,请勿操作
- 基于
Python3
及Django4
的节目表数据抓取及发布系统 - 网站地址:mxd's EPG
- Github地址:Github相应仓库
配置要求
外网部署要求:
- 服务器为Linux、Win系统,需要安装Python,Python版本>=3.10
- 服务器具有公网IP
- 服务器需要放行Web服务器相应端口
- 服务器配置不低于4核4G运行内存,否则可能无法流畅运行
- 服务器建议上Uwsgi,可以看本文最后进阶配置部分
内网部署要求
- 服务器为Linux、Win系统,需要安装Python,Python版本>=3.10
- 服务器具有访问外网权限
- 服务器需要放行Web服务器相关端口
- 考虑到内网访问量不大,可以不用上Uwsgi,配置尽量不低于2核2G运行内存
- 如果您不使用Uwsgi,但是服务器Web端经常性崩溃,那我还是推荐你上Uwsgi,同时,服务器配置不低于4核4G运行内存
预览图&实际效果图✨
主要功能
- 从网上抓取各来源的节目表信息并生成XMLTV格式文件,导入Perfect Player等APP直接载入节目表信息。
- 后台配置频道获取列表及抓取日志。
- 抓取失败时自动更换来源。
- 各数来源提供节目表的频道获取。
- 提供向外发布的接口。
- 使用nginx+uwsgi+MYSQL,普通电脑经长期测试,一天DIYP接口访问量可千万以上!
节目表来源
- 电视猫
- 搜视
- 央视
- 中数
- 台湾宽频
- 中华电信
- 香港有线宽频caletv
- 台湾四季电视
- 香港有线宽频i-cable
- 香港NOWTV
- 香港无线电视
- 北京卫视
- 广东卫视
- 香港卫视
- viutv
- 川流TV
- myTVSUPER
需求
- requests
- django
- BeautifulSoup
使用方法
Linux端部署指南
1.clone 本仓库:
# 首先建立相关部署文件夹,并cd到相关目录
# 此位置将作为程序运行位置
# 以下是示例,请改为实际文件夹
mkdir /path/to/epg
cd /path/to/epg
# 可以访问Github执行以下命令
git clone https://github.com/mxdabc/epg/
# 不可访问Github的,访问Github镜像站
git clone https://bgithub.xyz/mxdabc/epg/
2.Debian、Ubuntu、Alpine直接运行以下脚本
# 后续增加其他版本,如果您不是上述系统,建议手动部署
sudo bash ./setup.sh
此脚本需要Root权限运行,且您的系统版本是上述支持系统 如果可以运行上述脚本,跟着脚本一步一步来就OK
3.手动安装依赖、部署(推荐)
(1)Ubuntu、Debian系
sudo apt-get update && sudo apt-get install curl git python3 python3-pip -y
pip3 install python-dateutil django==4.2.11 requests beautifulsoup4 mysql-connector-python pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
(2)Alpine Linux
# 默认sudo,有些可能是doas,看情况使用。
sudo apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev git
pip3 install python-dateutil django==4.2.11 requests beautifulsoup4 mysql-connector-python pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
4.安装MySQL(内网部署可以直接用程序自带的SQLite)
如果您是SQLite3数据库,可以直接导入目录下的db.sqlite3文件。
修改[你的目录]/epg/settings.py
,找到以下代码块。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名称',
'USER': '数据库用户名称',
'PASSWORD': '数据库密码',
'HOST': '127.0.0.1',
'PORT': '3306',
},
}
MySQL用户需要下载本文附件文件,并导入相应仓库
修改[你的目录]/epg/settings.py
,找到以下代码块。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
}
5.程序相关配置文件
[你的目录]/util/general.py
中有大部分配置
crawl_info
:需要采集的节目天数、生成xml的天数、是否需要换源等dirs
:生成测试文件目录chuanliu_Authorization
:如果使用川流TV来源,需要提供此信息
6.抓取数据并存入数据库(运行web页面前必需)
python main.py #抓取数据并存入数据库,可设置为定时任务
python main.py -channel #抓取所有来源的频道
python main.py -n CCTV1 #单独测试某一频道
抓取的频道会加入Channel\_list表,需要自己手动整理进Channel表中才可以抓取
可以打开http://ip地址:端口/admin/ 自己配置要抓取的列表
7.启动Web及API接口
python manage.py runserver 0.0.0.0:80
#或者Python3
python3 manage.py runserver 0.0.0.0:80
这里的0.0.0.0:80代表服务器运行在80端口,如果需要修改端口,请修改80为其他
同时服务器需在防火墙放行相应端口,在此不多赘述
8.Web界面地址
- 浏览器访问http://ip地址:端口/ 查看已有数据抓取情况.
- 浏览器访问http://ip地址:端口/admin/ 打开后台
- 默认用户名密码:
admin/admin
请一定更改! - DIYP接口
http://127.0.0.1/api/diyp/
需要提供参数?ch=CCTV1&date=20230309
9.进阶配置
# pip 安装uwsgi,并配置相关配置
pip3 install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple
Windows部署指南
暂无,等待后续更新
mxd's EPG 服务器端部署指南
https://blog.mxdyeah.top/mxdyeah_blog_post/develop_epg_guide_1.html