博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TypeScript写的nodejs爬虫
阅读量:6212 次
发布时间:2019-06-21

本文共 2355 字,大约阅读时间需要 7 分钟。

1. 前言

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

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

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

github地址:

2. 技术实现

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

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

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

代码位置:gulpfile.js 第18行

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

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

package.json中代码:

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

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

npm install -g concurrently

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

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

3. 接口

接口统一运行在

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: 获取网站各栏目的视频数据


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

接口地址 请求方式 参数
/class 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

....

更多栏目id,请查看配置文件源码/src/config/index.ts。你懂得!!!

转载地址:http://pxdja.baihongyu.com/

你可能感兴趣的文章
.NET Core 2.1 Preview 2带来网络方面的改进
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
大规模学习该如何权衡得失?解读NeurIPS 2018时间检验奖获奖论文
查看>>
O’Reilly软件架构大会第一天内容回顾
查看>>
RSocket:一个面向反应式应用程序的新型应用网络协议
查看>>
IBM首家发布了公有云中的裸机Kubernetes
查看>>
专访尤雨溪:先别管4.0了,Vue CLI重构了解一下
查看>>
机器人操作系统来到Windows
查看>>
如何打造一流的视觉AI技术
查看>>
如何使用ElasTest实现测试的可观察性
查看>>
如何打造一流的查询引擎,构建优秀的数据仓库?
查看>>
未来的.NET之多重继承
查看>>
桌面上的Flutter:Electron又多了个对手
查看>>
绩效考核如何跟工资、等级挂钩?
查看>>
全面布局“边” “端”,腾讯云边缘计算技术探索及落地应用
查看>>
Swift 4.2进入最后开发阶段,为Swift 5铺平道路
查看>>
JavaScript到底是面向对象还是基于对象?
查看>>
要招到顶尖人才?那就开源你的代码吧
查看>>
如何组建开源社区
查看>>
5G一周热闻:华为夺联通5G大单,首张5G电话卡发放
查看>>