捡了鼠标开网吧系列——nodejs爬取电影连接

前言

最近在看新出的电视剧“斗破苍穹”,但是一集电视剧的广告开头90s中间45s片尾15s,实在使人发指。以前有了解过,网上有不少免vip解析接口,因而本渣决定动手作一个能够去除广告的小网站,因而有一下采坑过程。html

采坑之路

首先,这是最终在线预览。文章核心是爬取电影连接,而后和现有的会员解析接口拼接展现。前端

1.第一版

视频解析接口+电影连接=无广告电影。 node

通过测试,预期功能实现。emmm,鼠标捡到了。但是每次都要找电影连接才能观看是有点烦啊,能不能经过搜索关键字直接播放呢? 做为一个前端弱鸡,本能反应=》找接口。

2.找接口

找了半小时终于在聚合数据上找到符合条件的接口,影片连接还有上映信息均可以拿到,简直不要太舒服。使用过程发现聚合数据的接口数据并不完整,好多新上映的电影都没有返回数据,并且还有调用次数限制,此方案终结。jquery

3.nodejs爬虫

有两种思路:1.爬取各大视频网站全部视频连接并存入数据库,用户搜索时去数据库查找电影。 2.获取到前端搜索关键字后,去视频网站爬取,而后返回给前端。第一种方式数据量比较大,要考虑到网站的反爬措施,好要写脚本定时爬取以保持能够获取视频网站最新数据。第二种方法在线爬取,会有必定的延时,通过测试延时时长在1s左右,所以决定采用第二种方式。 经过对视频网站分析发现,每一个视频网站都有全网搜索接口,本次爬取企鹅视频,上代码。git

其中$就是抓取到的html内容,以下图。
经过标签获取数据轻松拿到电影名、海报等信息,可是播放连接这里出现了一点问题:若是是电视剧会出现这个状况。
由于电视剧集数比较多,因此中间会用‘...’省略,这时候爬虫获取的播放连接就不完整。打开network,点击‘...’省略的集数加载了出来,于此同时
能够看到,咱们想要的信息全在这个接口里。因而咱们在上一个接口采集连接时作一个判断,若是当前连接value为'...'就调用这个接口,这里要注意作异步处理,否则采集不完整。

4.前端展现

这里没多少技术栈,可是由于前先后后需求一直改变,从最开始原生js到jquery,最后甚至想上框架~~!。算了很少数,这里是github地址github

5.总结

其实nodejs作爬虫坑仍是蛮多的,爬取电影链接时,电影、电视剧、综艺、续集等都有不一样的html结构,因此用标签爬取数据真的不是一个好的思路。并且在获取电视剧‘...’连接这一块也比较坑,由于不会nodejs断点调试,很简单的问题一直没法定位。 第一次写文章,思路、格式都不太好,见谅。下班,嘿嘿,溜了。数据库

相关文章
相关标签/搜索