澳门新蒲京娱乐

图片 7
利用开辟之Linq和EF

使用TSQL脚本执行Package

新蒲京官方下载:非中文自动翻译,教你一步一步用

 

新建四个类型:

$ cd ~/Documents/NodeJs
$ mkdir immoc-video-download
$ cd immoc-video-download
$ npm init

ps:接下去会令你填诸多音信,全体平素回车就足以(也得以认真写写),最后索要输入 yes 加回车结束。

自己解释一下一步,npm init 是开头化3个档案的次序,互动式帮大家转移八个最简易的
package.json 文件,而那些 package.json
文件包蕴大家项目名,小编,项目重视等等消息。

 

请求头分析

先上图!

新蒲京官方下载 1

imooc headers

看完这几个大家相应有个大约明通晓白的笔触了啊,废话不多说,完善代码。

环境:python2.7 + win10

浅析摄像 id 和 filename

 

转自:

 

看看宗旨代码

 网址很干净舒服,这一次做的是基于关键字搜索来爬这个相关录制,那样就会很好的归类了,若输入中文找出,那结果也一般都以国内摄像,英文的话
那正是国外的。

获得下载地址:

那儿大家还收获录制播放页面去抓取一下网址播放录像请求的地点:

新蒲京官方下载 2

imooc headers

在过滤器中输入录像的格式 mp5 过滤一下(找不到的话试试 flv
之类的),看到出现了小编们想要的 VCD 文件,是或不是专门感动!!

看一下头文件,什么鬼?!那串东西怎么??能够一定,那不是大家想要的。

我们查究输入摄像 id 作过滤条件

新蒲京官方下载 3

imooc headers

点越发 preview(response显示的事物太长很难截图) 看看它给大家回到什么:

新蒲京官方下载 4

imooc headers

看!出来了。

我们能够看来那是 ajax
请求的多个地方,没提到,既然给我们找到了,那就拼接一下就 ok 了。

上代码!

var getVideoUrl = function(id, callback) {
    superagent.get('http://www.imooc.com/course/ajaxmediainfo/?mid=' + id + '&mode=flash')
        .end(function(err, res) {
            var url = JSON.parse(res.text);

            if(url.result == 0) {
                url = url.data.result.mpath[0];
                callback(url);
            }
        })
}

 既然如此,那就径直上正则表明式来合作

解析 html:
superagent
    .get('www.imooc.com/learn/' + courseId) // 在外面设置一个 courseId 的参数
    .set(headers)
    .end(function(err, res) {

        // res.text 通过请求获取的 html 页面
        var $ = cheerio.load(res.text);

        // 获取课程的名称
        $('.course-infos .hd').find('h2').each(function(item) {
            courseTitle = $(this).text();
        })

        // .chapter 是包含所有 video 的容器,这是 jquery 语法,为了获取所有的视频 id 和 filename
        $('.chapter').each(function(item) {

            var videos = $(this).find('.video').children('li')

            videos.each(function(item) {
                var video = $(this).find('a')
                var filename = video.text().replace(/(^\\\\\\\\s+)|(\\\\\\\\s+$)/g,"");
                var id = video.attr('href').split('video/')[1]

                // 视频 id 和 视频文件名字
                console.log(id, filename);
            })
        })
    })

上边那段代码帮我们收获了每一个录像的 id 和
它的文件名,那么接下去大家只要求得到它的录制下载地址就 ok。

新蒲京官方下载 5

新建入口文件

$ touch app.js #新建一个名为 app.js 的文件

到这一步,这一个爬虫项目所必要的遇到和依赖的都早就绸缪好了。


我的github地址 

第三步

 

剖析慕课网

此间在说下,当笔者输加入关贸总协定组织键字是英文的话,搜出来的结果一切是英文的,于是
小编就下载成功后,保存文件
翻译一下她的标题。翻译成人中学文的,作者去找翻译,最终就用金山词霸了,如果应用官方api的话,好像也有收取金钱。。这那多少个,我要一贯爬页面,于是,作者就径直只怕爬他的翻译页面,提交英文,重返粤语,解析网页,正则相配出来。就像是此
嘿嘿嘿。。

下载录像

有了地方的 url 接下来我们的素养就简单多了。

直白上代码:

var downloadVideo = function(url, filename, callback) {

    // 去掉文件名后面的时间
    // 2-1 登录动画-冒泡 (10:53) —> 2-1 登录动画-冒泡.mp4
    filename = filename.replace(/\\\\\\\\(.*\\\\\\\\)/,'') + '.mp4';

    // 创建一个以课程名字命名的目录存放视频
    var dirPath = savePath + courseTitle + '/'
    if (!fs.existsSync(dirPath)) {
        fs.mkdirSync(dirPath);
    }

    console.log('开始下载第' + courseTotalCount + '个视频' + filename + ' 地址: ' + url);
    var writeStream = fs.createWriteStream(dirPath + filename);
    writeStream.on('close', function() {

        callback(filename);
    })

    var req = superagent.get(url)
    req.pipe(writeStream);

}

总的来看这里是或不是尤其欢愉!!!

别急,接着大家再插足那行代码。

var courseId = process.argv.splice(2, 1);

ok!马到成功!

哈哈哈,招待一块学习交流 🙂 ~~~

引进模块重视:

用编辑器张开 app.js 这些文件,在里面输入

var superagent = require('superagent');
var cheerio = require('cheerio');
var fs = require('fs');

 既然那都被本人猜出来了,那思路就很显然了,翻页–得到源代码– 正则相配–就能够批量到手录制链接了,然后去重后
在想办法直接通过那个链接去下载。于是,壹阵百度 谷歌找到很多措施,也找到诸多api,ok 那就不供给重复造轮子,间接拿来用吧。

开始

其1课程11分适合初学 Node.js 的初学者看(因为自己也是一头初学的新手~)

在这里,小编就暗中同意我们都早就在自身的计算机上搭建好 node.js,我就不再多讲了,假诺您是首先次接触
Node.js 那么先请到能够到Node.js
中文网(英文)
上看看,里面有整机的安装教程。

想一贯看源码的能够间接移步到
github imooc-video-download。

新蒲京官方下载 6

新蒲京官方下载 ,先写贰个伸手头:
var headers = {
    "Cache-Control": "max-age=0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Referer": "http://www.imooc.com/",
    "Accept-Encoding": "gzip, deflate, sdch",
    "Accept-Language": "zh-CN,zh;q=0.8",
    "Cookie": cookies // 在外面定义一个 cookies 变量存放自己的 cookies
};

这里正是一向把上三个截图里的 request headers 里面包车型地铁兼具数据都 copy
进去。

如此那般就能够向来解析出装有录制格式的音信,然后通过id
就能够下载下来了。是很好用的贰个工具。

第一步

谈到下载摄像,首先大家要先有个大意思路:

  • 发送请求—>获取摄像下载地址->发送下载请求下载录制—>把摄像文件写入本地

  • 因为急需倡导呼吁,在此间自身用到 superagent 是个
    http 方面包车型地铁库,能够发起 get 或 post 请求。

  • 因为要分析网页,在此处本人利用 cheerio 大家能够把它当做一个Node.js
    版的 jQuery,用来从网页中以 css
    selector 取数据,使用方法跟 jquery 同样的。

  • 写文件的话就用 Node.js 自带的 fs 文件模块。

前言:前段日子搞了有的爬录像的类型,代码都写好了,这里写小说那就在来重新分析一次呢。有倒霉的地方莫见怪 : )

源码解析

先上图!

新蒲京官方下载 7

imooc 源码

  • 看这里!!

  • 小编们来探视慕课网的网站源码,开掘没?种种录像都有贰个录像的id,再来看看教程的 URL 课程也有二个科目
    ID 。

  • 大家都领会这么些网址的录像是亟需报到之后才方可看来看的,那就意味着我们在呼吁的时候要在
    headers 里做些小动作,把 cookies 放进去

开班先说一下,访问youtube必要准确上网,请自行化解,最佳是大局代理。

搭好主旨框架

var superagent = require('superagent');
var cheerio = require('cheerio');
var fs = require('fs');

var url = '慕课网课程'
var savePath = '保存文件路径'

superagent
    .get(url)
    .end(function(err, res) {

    })

// 获取视频 url
var getVideoUrl = function() {

}

// 下载视频
var downloadVideo = function() {

}

基本框架已经没问题了,不过当中啥都没,如何是好?

别慌,爬虫嘛,当然是在网页上爬数据。

 

第四步

 

第二步

既是思路有了,那就从头上代码吧~

新蒲京官方下载 8

设置项目模块

$ npm install superagent cheerio --save

--save 是个可选参数,加了它以往会活动帮咱们把地点安装的三个模块自动写入到
package.json 里面。

 

第五步

我们下载录像的时候只必要在顶峰试行上面那行命令就能够了。

$ node app courseId # 你想下载的视频 id

那些项目已上传出
github imooc-video-download

 

文/laizw(简书作者)
初稿链接:
作品权归小编全数,转发请联系笔者得到授权,并标明“简书笔者”。

 

 

"url":"/watch\?v=(.*?)","webPageType"

ok 到此地整篇文章就甘休了,写小说都快弄了1个钟头了。。不轻巧呢 :- 

鼠标一爱慕下拉,会活动请求,是个post请求,壹看正是回到的录像音信。

ok,先从最简易的发端,查看网页源代码看看那一个视频链接是还是不是都是在里头,作者睁大了小编的二四k光棍的眼眸搜索来了。。。看了须臾间,录像音信全在这一个<script>标签里面。

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图