casperJs爬虫程序[2] - 抓取优酷视频作者视频信息的实现

本文介绍了一种用于抓取优酷网站上Dota视频信息的爬虫实现方案,包括生成链接、抓取视频详情及保存数据到数据库等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// create links should be hamstersed
function swallow(opts) {
	var fs = require("fs");
	var dict = JSON.parse(fs.read("./makers/dotaMaker.json"));
	var arr = [];
	dict.forEach(function(mi, i) {
		var url = "http://i.youku.com/u/" + mi.code + "/videos";
		arr.push(url);
	});
	opts.urlArr = arr;
}

// fetch
// sandbox
function hamsters(db) {

	return getVideoDetail();

	function getVideoDetail() {
		var rst = [];
		var fetchNode = function(node) {
			var title = node.find("li.v_title a").attr("title");
			var link = node.find("li.v_link a").attr("href");
			var thumb = node.find(".v_thumb img").attr("src");
			var ishd = node.find(".v_ishd span").attr("title");
			var time = node.find(".v_time .num").text();
			var pub = node.find(".v_pub span").text();
			var viewCount = node.find(".v_stat .num:eq(0)").text();
			var commentCount = node.find(".v_stat .num:eq(1)").text();
			var item = {
				title: title,
				link: link,
				thumb: thumb,
				ishd: ishd,
				time: time,
				pub: pub,
				viewCount: viewCount,
				commentCount: commentCount

			};
			return item;
		};
		var nodes = $(".items ul.v");
		nodes.each(function(i, n) {
			rst.push(fetchNode($(this)));
		});
		return rst;
	}
};

// save data
function bear(opts) {
	// 把所有的数组联合成一个数组
	var data = Array.prototype.concat.apply([], opts.data);
	var db = opts.db;


	var transData = require("../lib/transData");

	data.forEach(function(ii, i) {
		var item=transData(ii);
		if (!db({
			title: item.title
		}).first()) {
			db.insert(item);
		}
	});


}

module.exports = {
	// 生成要被fetch的links
	swallow: swallow,
	// 在links中抓取数据
	hamsters: hamsters,
	// 按照一定格式写入数据库
	bear: bear

};


继续上期,以上是抓取优酷dota视频作者的视频信息的实现


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值