掌上影视是一个可以在线浏览最新影视资源的平台,分为PC端、移动端,同时包括一个爬虫工具,可以自动爬取不同影视平台上的数据,从而保证该平台可以拥有最新的资源。该平台主要提供电影、电视剧、电视直播、戏曲相关资源的浏览与播放。
掌上影视的PC端和移动端采用相同的接口来获取数据,接口主要使用NodeJS
来编写,PC段主要使用Html
、Bootstrap
、Jquery
来实现,移动端使用Ionic
框架来实现,数据库采用MongoDB
数据库。
本项目仅为学习之作,请勿用作商业用途,否则后果自负!
- NodeJS:v10.16.3
- JDK:1.8.0
- MongoDB:v4.0.3
- Python:3.7.4
- Scrapy:1.6.0
- Nginx:1.17.0
- 在你的服务器中建立文件夹
/usr/local/etc
,将/usr/local/projects/PocketFilm/etc
下面的文件复制到/usr/local/etc
下面,然后将/usr/local/etc/nginx/nginx.conf
中的域名修改为你自己对应的域名 - 在你的服务器中建立文件夹
/usr/local/projects
- 将
Server/PocketFilm
上传到你的服务器中的/usr/local/projects
下面 - 进入到
/usr/local/projects/PocketFilm
中,以下操作均是相对于当前文件夹 - 进入到
files/shell
文件夹中- 启动
Nginx
:sh start_nginx.sh
- 启动
MongoDB
:nohup sh monitor.sh >/dev/null 2>nohup-monitor.out &
- 启动接口服务:
nohup sh start_api.sh >/dev/null 2>nohup-api.out &
- 启动掌上、掌上影视、掌上电视、掌上戏曲、掌上小品:
sh start_pocketfilm.sh
,如果启动单个或多个的话,其命令为sh start_pocketfilm.sh movie,tv,drama
,不同的服务以逗号隔开,关闭相关服务的命令为sh stop_pocketfilm.sh
,关闭单个或多个的命令为sh stop_pocketfilm.sh movie,tv,drama
,不同的服务以逗号隔开 - 启动推荐服务:
sh start_recommender.sh
- 启动
- 进入到
Spider/PocketLifeSpider/PocketLifeSpider/shell
文件夹中- 启动爬虫:
- 爬取全部数据:
nohup sh start_spiders.sh all all >/dev/null 2>nohup-all-all.out &
- 爬取最近数据:
nohup sh start_spiders.sh all latest >/dev/null 2>nohup-all-latest.out &
- 参数说明:
sh start_spiders.sh all all
- 第一个
all
:爬虫类型,all
表示全部爬虫,单个或多个爬虫以逗号分开,例如:sh start_spiders.sh tencent,youku,iqiyi all
- 第二个
all
:表示全部数据,如果想爬取最近数据,则为latest
,例如:nohup sh start_spiders.sh all latest >/dev/null 2>nohup-all-latest.out &
- 第一个
- 爬取全部数据:
- 启动爬虫:
- 项目分为接口服务、Web端、移动端、小程序、爬虫五个模块,不同模块使用不同的IDE导入相应的代码,具体如下:
- 接口服务:文件夹为
Web/PocketFilm
- 使用
WebStorm
导入相应代码 - 修改
Web/PocketFilm/routers/api.js
中的var dbURL = 'mongodb://***:27017';
,将***
修改为你自己服务器对应的ip - 修改
Web/PocketFilm/routers/api.js
中的var avatarList
,将其中的默认图片修改为你自己的默认图片地址
- 使用
- Web端:文件夹为
WWW/PocketFilm
- 使用
Intellij IDEA
导入相应代码 - 修改项目的Maven仓库地址
- 修改
WWW/PocketFIlm/Common/src/main/java/com/grayson/common/config/Configs.java
中的public static String API_HOST = "http://***:9000";
,将***
修改为你自己服务器对应的ip,然后使用软件右侧的MavenProjects
中的Common
中的Lifecycle->install
将其安装到你的Maven仓库中
- 使用
- 移动端:文件夹为
Mobile/PocketFilm
- 使用
Visual Studio Code
导入相应的代码 - 修改
Mobile/PocketFilm/src/app/config.service.ts
中的public sourceUrl = 'http://***:9000';
,将***
修改为你自己服务器对应的ip
- 使用
- 小程序:文件夹为
Applet/PocketFilm
- 使用
微信web开发者工具
导入相应的代码 - 修改
Applet/PocketFilm/utils/util.js
中的const configUrl = 'http://***:9000';
,将***
修改为你自己服务器对应的ip
- 使用
- 爬虫:文件夹为
Spider/PocketFilm
- 使用
PyCharm
导入相应的代码 - 修改
Spider/PocketLifeSpider/PocketLifeSpider/util/MongoDbUtils.py
中的"ip":'***'
,将***
修改为你自己服务器对应的ip
- 使用
- 接口服务:文件夹为
详见 CHANGELOG。
将Web/PocketFilm/routers
下面的api.js
中的var dbURL = 'mongodb://localhost:27017';
中的localhost
替换为数据库所在机器的域名或ip地址。
将Mobile/PocketFilm/src/app
下面的config.service.ts
中的public apiUrl = 'http://139.199.24.205:8080/api';
中的139.199.24.205
替换为接口所在机器的域名或ip地址。
1、将Spider/PocketLifeSpider/PocketLifeSpider/util
下面的MongoDbUtils.py
中的139.199.24.205
环卫数据库所在机器的域名或ip地址。
settings = {
# "ip":'localhost', #ip
"ip":'139.199.24.205', #ip
"port":27017, #端口
"db_name" : "pocket_film", #数据库名字
}
2、资源名称及其对应的命令
资源名称 | 命令 |
---|---|
电影 | scrapy crawl movie -a target=1 |
电视剧 | scrapy crawl movie -a target=2 |
综艺 | scrapy crawl movie -a target=3 |
动漫 | scrapy crawl movie -a target=4 |
影视类型 | scrapy crawl movie_type |
电影播放资源 | scrapy crawl movie_source -a target=1 |
电视剧播放资源 | scrapy crawl movie_source -a target=2 |
综艺播放资源 | scrapy crawl movie_source -a target=3 |
动漫播放资源 | scrapy crawl movie_source -a target=4 |
电视直播 | scrapy crawl tv |