Files
pte/mApi
2024-09-27 01:31:25 +08:00
..
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00
2024-09-27 01:31:25 +08:00

1. 前言


为何写这个接口?其实本来不准备写的,这两天在练习 TypeScript,然后一直在用TypeScript改造express框架的应用生成器代码。改着改着发现有点无聊了。

无聊,而且没有挑战,怎么办?....Google翻墙后随意逛了下然后无意中看到一个比较好欺负的 学(dongzuo)习(pian)网站,然后抄起还没最终完善好的项目代码来练练手!

注意:代码本无罪,请以学习的目的来正确看待本项目!

2. 技术实现


项目基于Node.js,主要开发语言使用的是TypeScript,通过自动化构建工具gulp实现对*.ts文件的修改后的自动编译成*.js

使用模块 gulp-uglify 压缩编译成功后的js代码然后通过模块 gulp-babel将编译后的es6转换成es5代码。

因为当我们还没写完某段ts代码gulp在后台编译的时候就会报错报错直接导致了gulp终止了进程也就无法对代码进行有效的实时编译。所以这里使用模块 gulp-plumber在容易出错的地方写错误监听。这个插件可以阻止 gulp 插件发生错误导致进程退出并输出错误日志。

代码位置:gulpfile.js 第18行

//编译ts文件为js
gulp.task('build-ts',function(){
    return tsp.src()
    .pipe(plumber()) // 捕捉编译ts编译的错误避免因为错误导致gulp进场关闭
    .pipe(tsp())
    .pipe(gulp.dest(PATHS.output));    
});

因为我们要让gulp在后台监听并实时编译ts文件然后还想让我们的nodejs服务器同步我们ts文件编译结束能自动重启查看到效果所以我这里安装了模块 concurrently 。主要用于同步运行gulp任何和启动nodejs网站服务器。

package.json中代码:

"scripts": {
  ...
  "all": "concurrently  \"gulp dev\" \"npm run dev\" "
}

所以请先全局安装 concurrently,命令:

npm install -g concurrently

然后在安装你的网站依赖。

项目里有些文件和代码和此次爬虫的代码无关,只是我之前还没写完的代码留在那,懒得删除!并不影响使用...

3. 接口


测试阶段接口统一运行在 http://127.0.0.1:3000

3.1: 获取网站主页数据


这个接口获取的是网站主页的数据,视频数量有限,不过是推荐的热门视频。

接口地址 请求方式 参数
/index GET
{
  status: 200,
  length: 24,
  time: "2018-08-11 23:22:26",
  result: [
    {
      title: "SM调教最新**娘",
      href: "https://www.**.com/Html/93/5949.html",
      gif: "https://pic.**.com/Uploads/vod/2018-08-11/7.mp4.gif",
      time: "2018-08-11",
      mp4: "https://d.e**i.com/20180811/93/7/7.mp4"
    },
    {
      title: "极品**女主播96年美女赵晓晓人这么瘦却有这么一对****",
      href: "https://www.**.com/Html/91/5948.html",
      gif: "https://pic.**.com/Uploads/vod/2018-08-11/924.mp4.gif",
      time: "2018-08-11",
      mp4: "https://d.**.com/20180811/91/924/924.mp4"
    },
  ]
}

3.2: 获取网站各栏目的视频数据


这个接口是用来获取各个网站分类栏目的数据,视频数量和分类更多!

接口地址 请求方式 参数
/videoClass GET type具体栏目编号(参考下面的表)
page: 页码
{
  status: 200,
  length: 12,
  time: "2018-08-11 23:35:55",
  total: "共2642部 4/221",
  result: [
    {
      title: "藝壇風雨錄-[粵語中字]",
      href: "https://www.**.com/Html/109/5865.html",
      gif: "https://pic.**.com/Uploads/vod/2018-08-06/11.mp4.jpg",
      time: "2018-08-06",
      mp4: "https://d.**.com/20180806/109/11/11.mp4"
    },
    {
      title: "正点留学妹妹**视频被**漂亮",
      href: "https://www.**.com/Html/87/5857.html",
      gif: "https://pic.**.com/Uploads/vod/2018-08-05/64.mp4.gif",
      time: "2018-08-05",
      mp4: "https://d.**.com/20180805/87/64/64.mp4"
    }
  ]
}

注意type 字段的具体编号请看下表:

栏目名称 栏目编号
国产精品 60
中文字幕 94
S级女优 100
欧美性爱 62
成人动漫 101
自拍偷拍 89
夫妻同房 87
开放90后 93
换妻游戏 90
网红主播 91
手机小视频 88
明星艳照门 92
经典三级 109
无码在线 110
熟女人妻 111
美颜巨乳 112
颜射吃精 113
丝袜制服 114