首页 > 代码库 > Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV

Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV

这两天发现了一个叫看知乎的站点。是知乎的苏莉安做的,当中爬虫使用的 Node.js。这里就针对上一篇博客中的美剧小爬虫,改用 nodejs 进行实现一下。体验一下强大的 Node.js。
假设之前没实用过 JavaScript,最好还是到 http://www.codecademy.com/  做一下 JavaScript 和 jQuery 的入门练习,高速熟悉一下基本的语法,有其它语言基础一天时间足够。

有基本的了解后。就会发现 JavaScript 的两大特点:

  • 使用基于原型(prototype)的方式来实现面向对象编程。
  • 函数式编程,对函数式有兴趣推荐 Racket(原PLT Scheme)。

Node.js 是基于Google 的V8 引擎的一个 JavaScript 执行时平台,能够非常方便的编写高速可扩展的网络应用程序。Node.js 採取事件驱动。非堵塞 I/O模型。这使其轻量级且高效。非常适合执行在分布式设备上的数据密集的实时应用。有了Node.js 这个执行时。JavaScript就不必非得在浏览器中执行了。用武之地大增,比方以下的小爬虫,爬的是《纸牌屋》的高清下载链接:

// 首先安装两个库,在当前project文件夹用以下的命令行命令:
// npm install request
// npm install cheerio

var request = require("request"); // request是用来请求数据
var cheerio = require("cheerio"); // cherrio是用jquery的语法来解析html

var url = "http://www.yyets.com/resource/28793"; 
request(url, function(error, response, body) {
    if (!error && response.statusCode === 200) {
        var $ = cheerio.load(body);
        $('[type="ed2k"]').each(function() {
            var link = $(this).attr('href');
            if (typeof(link) != 'undefined' && link.indexOf("1024") > -1) {
                console.log(link);
            }
        });
    }
});

// 将文件命名为 download.js (or whatever you like)
// 打开命令行窗体运行(windows 下推荐用 powershell):
//         node download.js > link.txt
// 通过重定向输出,将下载链接存储到 link.txt 这个文本文件里
// tip: 按住 【shift】 键,当前文件夹内空白处右键会有打开命令行选项
// tip: 推荐 sublime 编辑器。安装 js 格式化和 terminal 插件
【地址:http://blog.csdn.net/thisinnocence/article/details/40404219】

Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV