博主头像
mxd's Blog

"The quieter you become,the more you are able to hear."

mxd's EPG 服务器端部署指南

mxd's EPG 

文档不完善,请勿操作

配置要求

  • 外网部署要求:

    • 服务器为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运行内存

预览图&实际效果图✨

Crawl
Crawl

RunImage
RunImage

主要功能

  • 从网上抓取各来源的节目表信息并生成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

Django官方文档

Windows部署指南

暂无,等待后续更新

mxd's EPG 服务器端部署指南
https://blog.mxdyeah.top/mxdyeah_blog_post/develop_epg_guide_1.html
本文作者 mxdyeah
发布时间 2024-04-06
许可协议 CC BY-NC-SA 4.0
发表新评论