MoreAPI是某音/某手/某红书/各视频平台非官方的RESTful API平台。MoreAPI提供的API只能获取公开数据,即任何人都可以通过浏览器及APP等访问相关服务以获取它们。
官网:https://www.wouldmissyou.com/
一、部署准备
MoreAPI_Pro
项目部署需要Linux
环境,服务器配置为2*2轻量型应用服务器。由于项目使用Python开发,所以需要Python环境。本次部署所需环境如下:
- CentOS 7.9.2009 x86_64(Py3.7.9) 宝塔面板8.0.5
- Python >= 3.10.0
- MySQL 8.0
- Redis
- MoreAPI_Pro源码
二、环境搭建
准备一台全新的服务器,安装完宝塔面板后进入,安装nginx
和MySQL
。然后等待安装任务完成。在左侧菜单栏软件商店搜索redis
安装。
以上安装完成后,点击左侧菜单栏网站
,选择Python项目
安装Python环境,点击Python管理器,选择安装Python3.10.0
。等待Python安装完成。
三、安装项目
以上环境安装全部完成后,就可以上传源码并安装了。
上传源码
点击左侧菜单栏文件
,选择进入/www/
目录,新建文件夹并命名为MoreAPI_Pro
,然后将官网下载的MoreAPI_Pro
源码上传至新建的文件夹中解压缩。
安装
文件上传并解压后,点击菜单栏左侧的网站
–>点击Python项目
–>点击添加Python项目
最后点击提交,开始自动创建虚拟环境,等待项目创建完成。下面开始配置项目
配置
进入项目目录,再进入项目目录中的applications
文件夹,找到config.py
文件,点击编辑文件,可以看到项目的MySQL配置、redis配置、开关配置都在此文件中。 (每次修改项目文件都要重启服务方可生效)
该配置文件中的内容如下:
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
"""
@Project : MoreAPI_PRO
@File : config.py
@Author : MoreCoding多点部落
@Time : 2023/11/22 8:59 AM
"""
import logging
class BaseConfig:
# 访问日志开关
ACCESS_LOG = True
# Sanic 拓展启用开关
AUTO_EXTEND = True
# 自动重载开关
AUTO_RELOAD = True
# 自动注册信号开关(开启后不存在的事件将会自动注册)
EVENT_AUTOREGISTER = True
# 异常返回格式
FALLBACK_ERROR_FORMAT = 'json'
# 客户端 IP 和代理 IP:X-Forwarded-For
# FORWARDED_FOR_HEADER = "X-Forwarded-For"
# 是否启用应用程序注册表
REGISTER = True
REQUEST_BUFFER_QUEUE_SIZE = 100
REQUEST_ID_HEADER = "X-Request-ID"
REQUEST_MAX_SIZE = 100000000
REQUEST_MAX_HEADER_SIZE = 8192
REQUEST_TIMEOUT = 600
RESPONSE_TIMEOUT = 600
SECRET_KEY = "zmDqprwgDyOjnQGTwbSChsL2kQ"
# mysql 配置
MYSQL_USERNAME = "" # 数据库用户名
MYSQL_PASSWORD = "" # 数据库密码
MYSQL_HOST = "" # 数据库地址
MYSQL_PORT = 3306
MYSQL_DATABASE = "" # 数据库名
# redis 配置
REDIS_PASSWORD = "" # redis密码
REDIS_HOST = "127.0.0.1" # redis端口号
REDIS_PORT = 6379 # redis端口
REDIS_DATABASE = 5 # redis数据库号
REDIS = f"redis://{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/{REDIS_DATABASE}?max_connections=10"
# 默认日志等级
LOG_LEVEL = logging.WARN
# 流冠代理配置 https://www.hailiangip.com/personal/flow
LG_ORDER_ID = "" # 代理订单号
LG_ORDER_PASSWORD = "" # 代理订单密码
LG_ORDER_HOST = "flow.hailiangip.com" # 代理地址
LG_ORDER_PORT = "14223" # 代理端口号
# 巨量代理配置 https://www.juliangip.com/user/reg?inviteCode=1022456
JL_ORDER_ID = ""
JL_API_KEY = ""
JL_IP_NUM = "10"
# 阿里云短信配置
ALI_ACCESS_KEY_ID = "" # 用户ACCESS_KEY_ID
ALI_ACCESS_KEY_SECRET = "" # 用户ACCESS_KEY_SECRET
ALI_SIGN_NAME = "" # 签名名称
ALI_TEMPLATE_CODE = "" # 模板ID
# 系统功能设置 (需保证数据库配置正常 并迁移)
ENABLE_PROXY = False # 是否开启网络代理
PROXY_NAME = "LG" # JL:巨量代理 LG:流冠代理
ENABLE_ALI_SMS = False # 是否开启阿里云短信(仅用于用户模块)
ENABLE_API_AUTHORIZATION = False # 开启API认证
ENABLE_API_LOG = False # 开启日志记录
ENABLE_POOLS = False # 开启cookie池 (优先级:请求携带cookie > MoreCookie > cookie池 > 默认cookie)
配置文件默认关闭网络代理、系统认证、日志记录、cookie池等功能。
**网络代理功能配置详见下方说明 **
cookie池、日志、认证等功能需要MySQL支持,在上方配置上自己的MySQL数据库相关的就可以了,然后还需进行数据迁移
以下是我的配置
数据迁移
配置文件中的数据库配置完成后,方可进行数据迁移,数据迁移后才能使用数据库相关。因为项目采用aerich
+tortoise-orm
,aerich要在虚拟环境中运行,我们现在开始找到此项目的虚拟环境安装位置。虚拟环境安装位置一般默认在/www/server/pyporject_evn
目录。
下面进入项目目录/www/MoreAPI_Pro
,调用上方虚拟环境中的aerich
命令进行数据迁移,在项目目录中打开终端输入以下命令:
/www/server/pyporject_evn/MoreAPI_Pro_venv/bin/aerich init -t applications.tortoise.TORTOISE_CONFIG # 虚拟环境路径+/bin/aerich init -t applications.tortoise.TORTOISE_CONFIG
/www/server/pyporject_evn/MoreAPI_Pro_venv/bin/aerich init-db
如出现如下图所示,则表示数据迁移成功。如果报错,请检查是否在项目目录中执行以上命令、虚拟环境路径是否正确。
如果数据迁移过程出现报错,请先项目目录中的以下两个文件删除,再次执行数据迁移操作。
四、大工告成
以上操作完成后,返回Python项目,将启动用户改为root
(防止部分机器创建文件权限不足),重启服务即可,
我们找个API请求工具测试一下,完美运行。
注:常见问题
一、代理配置
项目分为两个代理可供选择:
- 流冠代理(隧道代理,每次请求更换IP,消耗流量)
- 巨量代理(不限量代理, 每30秒获取一次IP,每次获取10个,随机调用。依托于redis)
流冠代理配置
进入流冠代理官网(杭州流冠科技有限公司-流冠IP代理-高匿HTTP-在线代理ip-隧道代理-千万IP服务供应商 (hailiangip.com)),注册账号并实名认证后,选择购买动态代理–流量计费方式
购买成功后,进入个人中心–>订单管理–>流量订单,找到刚才购买的代理,点击进入详情
进入详情后,点击配置订单密码,和配置白名单,将服务器IP填写进白名单中。
然后进入MoreAPI_Pro项目目录,进入applications
文件夹,找到config.py
配置文件,将刚刚购买的订单号和配置的订单密码填写进配置文件,然后将下方的代理功能打开。PROXY_NAME
填写LG
即可。重启MoreAPI_Pro服务即可。
巨量代理配置
进入巨量代理官网:https://www.juliangip.com/user/reg?inviteCode=1022456,注册账号并实名认证后,选择购买套餐,选择不限量代理套餐,根据个人需求选择。
购买后,进入个人中心–>产品管理–>动态代理(不限量)–>设置授权信息,设置白名单为自己的服务器IP
然后进入MoreAPI_Pro项目目录,进入applications
文件夹,找到config.py
配置文件,将刚刚购买的不限量套餐业务号和授权信息的API密钥填写进配置文件,然后将下方的代理功能打开。PROXY_NAME
填写JL
即可。重启MoreAPI_Pro服务即可。
日志相关
MoreAPI请求日志存储在数据库中,要开启日志,需要在MoreAPI_Pro项目目录,进入applications
文件夹,找到config.py
配置文件,将ENABLE_API_LOG
设置为True
,然后重启服务。要查看请求日志,需借助数据库连接软件,找到相关的表,进入查看即可
Cookie池相关
MoreAPI_Pro
项目集成cookie池功能,cookie池功能默认关闭的,可通过进入MoreAPI_Pro项目目录,进入applications
文件夹,找到config.py
配置文件,将ENABLE_POOLS
设置为True
,然后重启服务即可。MoreAPI_Pro
接口文档中有cookie池相关API,通过API,可对相对应平台的cookie进行增删改查操作。
注:每个平台的cookie都需要在登录后,获取首页的cookie才能生效
已实现接口
- 某音、某红薯、某手-获取视频详细信息
- 某音、某红薯、某手-获取用户详细信息
- 某音、某红薯、某手-获取用户主页发布
- 某音、某红薯、某手-获取直播间信息
- 某音、某红薯、某手-获取视频评论一级
- 某音、某红薯、某手-获取视频评论二级
- 某音、某红薯、某手-综合搜索
- 某音、某红薯、某手-视频搜索
- 某音、某红薯、某手-搜索用户
- 某音、某红薯、某手-搜索话题
- 某音、某红薯、某手-获取直播间用户列表
- 某音、某红薯、某手-获取话题视频
- 某音、某红薯、某手-获取视频弹幕
- 某音、某红薯、某手-获取视频短链