`

node抓包

 
阅读更多
'use strict'

var co = require('co');
var cheerio = require('cheerio');
var Promise = require('bluebird');
var request = Promise.promisify(require('request'));

var URL = 'http://www.piaohua.com/';

var typeLink = {
	V1001_TODAY_LATEST:'http://www.piaohua.com/',
	V1001_TYPE_KEHUAN:'http://www.piaohua.com/html/kehuan/index.html',
	V1001_TYPE_XUANYI:'http://www.piaohua.com/html/xuannian/index.html',
	V1001_TYPE_AIQING:'http://www.piaohua.com/html/aiqing/index.html',
	V1001_TYPE_WENYI:'http://www.piaohua.com/html/wenyi/index.html',
	V1001_AREA_DALU:'http://www.piaohua.com/html/zhanzheng/index.html',
	V1001_AREA_GANGTAI:'http://www.piaohua.com/html/kongbu/index.html',
	V1001_AREA_OUMEI:'http://www.piaohua.com/html/lianxuju/index.html',
	V1001_AREA_HANGUO:'http://www.piaohua.com/html/zongyijiemu/index.html'
}

function getftpLink(link){
	return new Promise(function(resolve,reject){
		request.get(link,function(err,res,body){
			if(!err && res.statusCode == 200){
				var $ = cheerio.load(body);
				var ftp = $('#showinfo').find('table tbody tr td a').html();
				resolve(ftp);
			}else{
				reject('failed to get the ftp!');
			}
		});
	});
}

function getTodayLatest(){
	return new Promise(function(resolve,reject){
		request.get(URL,function(err,res,body){
			if(err){
				console.log('failed to crawl the piaohua.com!')
				resolve();
			}else{
				var $ = cheerio.load(body);
				var movieLists = [];
				var _movieList = $('#iml1').children("ul").first().find('li');
				_movieList.each(function(item){
					var time = $(this).find('span font').html() ? $(this).find('span font').html() : $(this).find('span').html();
					if((new Date() - new Date(time)) < 259200000){  // 3 days
						var dom = $(this).find('a').first();
						var link = URL + $(dom).attr('href');
						var img = $(dom).find('img').attr('src');
						var name = $(dom).find('img').attr('alt').substr(22).replace('</font>','');
						var movie = {
							name:name,
							img:img,
							link:link,
							time:time,
						}
						movieLists.push(movie);		
					};
				});
				resolve(movieLists);
			}
		});
	});
}

function getListByEventKey(eventKey){
	return new Promise(function(resolve,reject){
		getPageByUrl().then(function(movieList){
			for(var i=0;i<movieList.length;i++){
				request.get(movieList[i].link,function(err,res,body){
					if(!err && res.statusCode == 200){
						var $ = cheerio.load(body);
						var ftp = $('#showinfo').find('table tbody tr td a').html();
						movieList[i].ftp = unescape(ftp.replace(/;/g,'').replace(/&#x/g, "%u"));
					}else{
						reject('failed to get the ftp!');
					}
				});
				resolve(movieList);
			}
		});
	});
}

exports.getCrawlMovieList = function* (eventKey){
	var movieList;
	if(eventKey === 'V1001_TODAY_LATEST'){
		movieList = yield getTodayLatest();
	}else{
		movieList = yield getListByEventKey(eventKey);
	}
	for(var i = 0; i < movieList.length; i ++){
		var ftp = yield getftpLink(movieList[i].link);
		movieList[i].ftp = unescape(ftp.replace(/;/g,'').replace(/&#x/g, "%u"));
	}
	return movieList;
}

 

分享到:
评论

相关推荐

    nodejs简单抓包工具使用详解

    使用Node.js进行抓包,我们首先要安装Node.js环境,然后通过npm(Node.js的包管理器)安装所需的模块。例如,在上述示例中,使用了cheerio和request模块。cheerio模块能够解析HTML,让开发者能像使用jQuery一样操作...

    Node.js-electronelectron-vue代理工具抓包工具网络功能工具anyproxy

    electron electron-vue 代理工具 抓包工具 网络功能工具 anyproxy

    socket网络编程工具:抓包,测试

    在这个主题下,“抓包”和“测试”是两个关键概念,它们对于理解和优化网络应用程序至关重要。 抓包(Packet Capture)是网络诊断和分析的基础工具。它允许我们捕获网络上的数据包,以便查看其内容、源地址、目标...

    gulp抓包工具安装及使用-1

    本文将详细讲解如何安装并使用`gulp`作为抓包工具,以提高前端开发效率和优化工作流程。 首先,让我们了解什么是`gulp`。`gulp`是一个基于流的自动化构建工具,它允许开发者定义一系列的任务来处理项目中的文件,如...

    使用Node.js编写爬虫抓取大麦网场馆数据

    http://devuser.github.io/docker-spider/ 使用Node.js编写爬虫抓取大麦网场馆数据。 仅用于初学者,请勿用于非法用途,切勿频繁访问大麦网。

    腾讯开源的以提升问题定位效率为初衷,提供染色抓包、全息日志和异常发现的Node.js框架.zip

    【标题】中的“腾讯开源的以提升问题定位效率为初衷,提供染色抓包、全息日志和异常发现的Node.js框架”指的是腾讯推出的一个专门针对Node.js应用的开源框架,该框架的主要目标是提高开发者在遇到问题时的定位效率。...

    kad协议里的nodes.dat文件抓包详解

    在本篇详解中,我们将深入探讨如何对kad协议中的nodes.dat文件进行抓包分析,以及从这些数据中提取出有价值的信息。 首先,了解Kademlia算法是至关重要的。Kademlia是一种基于 XOR 距离的分布式哈希表(DHT),其...

    node-get-page:超轻量级HTTP请求可抓取Internet页面

    获取页面 清除HTTP请求以删除Internet页面 安装 $ npm install get-page --save 用法 以字符串形式获取页面: // Getting pages as string var getPage = require('get-page').string; ... console.log(page);...

    node-red-contrib-pcap:Node-RED 的网络数据包捕获

    节点红色贡献-pcap node-red-contrib-pcap添加了对支持,以使用捕获和解码网络数据包。安装在安装此模块之前,您需要在系统上安装 。 在 Debian 和 Ubuntu 上: apt-get install libpcap-dev在 MacOS X 上,使用 : ...

    Scripts_Web_UI_Autotest:在前端 UI 自动化测试中,提供类抓包工具的拦截 url 断点处理和 mock 数据等功能, 并集成埋点自动化测试

    Scripts_Web_UI_Autotest简介: 在前端 UI 自动化测试中,提供类抓包工具的拦截 url 断点处理和 mock 数据等功能, 并集成埋点自动化测试,让你的前端自动化彻底摆脱后端和抓包工具的束缚,直接起飞。技术栈: node.js...

    Node.js-LivePoolWeb开发调试工具

    LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷的 WorkFlow 以及调试方案。

    Wireshark深度解析:网络抓包的艺术与实践

    8. **网络编程语言和框架**:使用特定的编程语言和框架(如Python、Java、Node.js等)进行网络应用的开发。 9. **分布式系统开发**:设计和实现分布式计算系统,这些系统可以跨多个物理位置运行。 10. **网络性能...

    Node.js-TSW-腾讯开源Node.js基础设施

    Tencent Server Web(TSW),是一套面向WEB前端开发者,以提升问题定位效率为初衷,提供染色抓包、全息日志和异常发现的Node.js基础设施。TSW关注业务的运维监控能力,适用于http、websocket协议的业务场景,可无缝与...

    61850报文分析

    常用的抓包方法包括基于Wireshark的抓包方法、基于Tcpdump的抓包方法等。 4.3 分析举例 抓包工具可以用来捕获智能电子设备之间的通信数据,例如MMS报文等。通过分析抓包的数据,可以了解智能电子设备之间的通信机制...

    网卡驱动安装+Omnipeek软件使用教程

    以上步骤和知识点描述了如何安装网卡驱动,安装和配置Omnipeek抓包软件,以及进行无线网络抓包和分析的过程。这些操作对于网络管理员和安全测试人员来说是基本技能,可以帮助他们监控网络活动、诊断网络问题或进行...

    浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)

    3. 使用工具如 BurpSuite 或其他 HTTP 抓包工具,构造包含恶意 payload 的 HTTP 请求。payload 通常包含多次“..”以实现目录穿越,例如:`/../../../a/../../../../etc/passwd`,目标是读取系统中的 `/etc/passwd` ...

    KAD协议原理<转>

    此外,eMule等其他P2P软件也融入了类似Kad的技术,尽管它们在key、value和nodeID的计算方法上有所不同。 #### 四、Kad协议的优势与挑战 Kademlia协议的优势主要体现在高效性与鲁棒性上。XOR度量机制简化了节点间的...

Global site tag (gtag.js) - Google Analytics