Giter Club home page Giter Club logo

mxdabc--epg's Introduction

mxd's EPG

下面是在Prefect Player运行的照片,完美适配我的CQYX

需要CQYX点击下方链接

CQYX: https://discuz.mxdyeah.top/mxdyeah_discuz_thread-37-1-1.html

运行照片

配置要求:

  • 服务器为Linux系统,需要安装Python,Python版本>=3.8
  • 服务器具有公网IP
  • 服务器需要放行8080端口(也可以改为别的,请看下文)
  • 服务器配置不低于8H8G,否则可能无法流畅运行

主要功能

  • 从网上抓取各来源的节目表信息并生成xmltv格式文件,导入Perfect Player等APP直接载入节目表信息。
  • 后台配置频道获取列表及抓取日志。
  • 抓取失败时自动更换来源。
  • 各数来源提供节目表的频道获取
  • 提供向外发布的接口
  • 使用nginx+uwsgi+MYSQL、普通办公电脑经长期测试,一天DIYP接口访问量可千万以上。

节目表来源

  • 电视猫
  • 搜视
  • 央视
  • 中数
  • **宽频
  • 中华电信
  • 香港有线宽频caletv
  • **四季电视
  • 香港有线宽频i-cable
  • 香港NOWTV
  • 香港无线电视
  • 北京卫视
  • 广东卫视
  • 香港卫视
  • viutv
  • 川流TV
  • myTVSUPER

需求

  • requests
  • django
  • BeautifulSoup

使用方法

第一步,克隆本仓库,需要服务器提前安装wget、git、pip(或pip3)、python命令,在此不多赘述。

git clone https://github.com/mxdabc/epg/

第二步,导入数据库。

服务器需要安装MySQL数据库或Sqlite3数据库,如何安装请自行查找!

推荐您使用MySQL,但是需要自己转换
如果您是Sqlite3数据库,可以直接导入目录下的db.sqlite3文件。
如果您是MySQL数据库,请手动转Sqlite3到MySQL

更改数据库(推荐MySQL)

epg/settings.py在此文件中修改配置如下:

DATABASES = {
    'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '数据库名称',
            'USER': '数据库用户名称',
            'PASSWORD': '数据库密码',
            'HOST': '127.0.0.1',
            'PORT': '3306',
    },
}

如果您是Sqlite3,可以更改'ENGINE': 'django.db.backends.mysql','ENGINE': 'django.db.backends.sqlite3',
epg目录下面的settings.py里面有每一段语法的使用方法,浏览器打开链接即可

SQlite3示例

# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
}

第三步,程序配置。

util/general.py 中有大部分配置
crawl_info:需要采集的节目天数、生成xml的天数、是否需要换源等
dirs:生成测试文件目录 chuanliu_Authorization:如果使用川流TV来源,需要提供此信息

第四步,运行python脚本前需要安装的依赖

# pip(或pip3,看系统)执行以下语句:
pip install bs3
pip install dateutil
pip install pymysql
pip install mysql-connector-python
# 如果安装完这些依赖库,程序仍旧无法运行,请自行搜索!
# 实在没办法去本仓库上方Issues反馈!

第五步,抓取数据(运行web页面前必需)

python main.py  #抓取数据并存入数据库,可设置为定时任务
python main.py -channel #抓取所有来源的频道
python main.py -n CCTV1 #单独测试某一频道  

另:抓取的频道会加入Channel_list表,需要自己手动整理进Channel表中才可以抓取

第六步,启动Web及接口

启动Web

python manage.py runserver 0.0.0.0:80

这里的0.0.0.0:80代表服务器运行在80端口,如果需要修改端口,请修改80为其他
同时服务器需在防火墙放行相应端口,在此不多赘述

访问

浏览器访问http://ip地址:端口/ 查看已有数据抓取情况。
浏览器访问http://ip地址:端口/admin/ 打开后台

(默认用户名密码:admin/admin请一定更改!)
  • DIYP接口http://127.0.0.1/api/diyp/ 需要提供参数 ?ch=CCTV1&date=20230309

第七步,可选:配置Nginx反代、ssl加密证书(https)

省略,大概步骤就是配置nginx代理127.0.0.1的某个端口,ssl也是nginx配置

mxdabc--epg's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.