NODE学习:利用nodeJS去抓网页的信息

1:引用模块"http" (执行命令node app.js "http://www.baidu.com")

//app.jsvar http = require(‘http‘);
var url = require(‘url‘);

function spider(u,cb){
    http.get( url.parse(u), function(res){
        var d = ‘‘
        res.on(‘data‘,function(chunk){
            d += chunk;
        })
        res.on(‘end‘,function(){
            console.log(‘spider_end && do cb‘);
            cb(d);
        })
    });
};
var u = "";
if( require.main === module ) {
    u = process.argv[2]
};
spider(u,function( data ){  //这个返回的是网页内容的信息;
    console.log( data );
});

2:引用模块nodegrass: (执行命令node app.js "http://www.baidu.com")

//app.jsvar url = "http://www.cnblogs.com/xiaochao12345/archive/2014/10/23/4044950.html";
var ng = require(‘nodegrass‘);

if(require.main === module) {
    console.log( process.argv );
    url = process.argv[2];
}
ng.get(url,function(data){
  //这个返回的是网页内容的信息;
console.log(data); },‘utf8‘);

3:引用模块superagent: (执行命令node app.js "http://www.baidu.com")

//app.jsvar url = "http://www.cnblogs.com/xiaochao12345/archive/2014/10/23/4044950.html";
var superagent = require("superagent");

if(require.main === module) {
    console.log( process.argv );
    url = process.argv[2];
};
superagent.get(url)
    .end(function (err, res) {
        console.log(‘fetch  successful‘);
        console.log(res);
    });

4:使用curl模块:(执行命令node app.js "http://www.baidu.com")

//app.jsvar curl = require("curl");

var u = "";

if( require.main === module ) {
    u = process.argv[2]
};

curl.get(u,function( data ){
    console.log( arguments );
});

______________________________________________________________________________________________________________

NODEJS中处理dom节点的方式(接口都和jq是统一的);

1:引用cheerio

var cheerio = require("cheerio");

var html = "<html><body><div id=\"div1\">text</div></body></html>";

var $ = cheerio.load(html);

console.log( "html" );
console.log( $.html() );

console.log( "#div1————〉html" );
console.log( $("#div1").html() );

console.log( "#div1----〉text" );
console.log( $("#div1").text() );

2:引用jquery

var $ = require("jquery");

var $dom = $("<html><body><div id=\"div1\">text</div></body></html>");

console.log( $dom.find("#div1").text() );

3:引用jsdom

var jsdom = require(‘jsdom‘);
var curl = require("curl");
var u = "https://github.com";

if( require.main === module ) {
    u = process.argv[2];
};

curl.get(u,function( arg0 , html ){
     //jsdom相当于打开了一个页面,在这个页面里面运行js;
    var document = jsdom.jsdom( html.body );
    for(var a in html)
        console.log(a);

    var window = document.createWindow();
    var script = document.createElement(‘script‘);

    //script.src = ‘http://code.jquery.com/jquery-1.4.2.js‘;
    script.src = "http://127.0.0.1:81/js/jquery.min.js";
    script.onload = function(){
        console.log(1);
        console.log( window.jQuery("body").text() );
    };

    document.head.appendChild( script );
});

_________________________________________________________________________________________________________________

文件保存的话直接用nodeJS中的fs模块:

var fs = require("fs");

fs.appendFile(‘file-name‘, "text_text_text_text" ,function(err){
    if(err)throw err;
    console.log(‘done‘)
});
时间: 2024-08-04 16:04:21

NODE学习:利用nodeJS去抓网页的信息的相关文章

python抓网页数据【ref:http://www.1point3acres.com/bbs/thread-83337-1-1.html】

前言:数据科学越来越火了,网页是数据很大的一个来源.最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,python)都可以实现抓网页数据,甚至很多统计\计算的语言(R,Matlab)都有可以实现和网站交互的包.本人试过用java,python,R抓网页,感觉语法各有差异,逻辑上是一样的.我准备用python来大概讲讲抓网页是什么概念,具体的内容要自己看手册或者google别人的博客,这里算是抛砖引玉了.水平有限,出现错误或者有更好的办法,欢迎讨论.. more info o

Node.app让Nodejs平台在iOS和OS X系统上奔跑

首先呢,欢迎大家去查看同样内容的链接:http://www.livyfeel.com/nodeapp/. 因为那个平台我用的markdown语法,我也懒得修改了,就这样黏贴过来了. 这是一个惊人的恐怖消息! 首先个人来介绍一下本文出现的几个知识点: ####Node.js Node.js是一个平台,下面简称Node.它用来是前端广为使用的javascript语言,可以在服务器的后端进行奔跑.我们知道,如果一个前端没有CSS和javascript,仅仅依靠HTML来供用户查看页面,是多么撕心裂肺的

node.js基础模块http、网页分析工具cherrio实现爬虫

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera

利用gitcafe托管静态网页

由于我的博客系统hexo就是托管在gitcafe上面,所以对于gitcafe和github就有着比较浓厚的兴趣,前段时间又把git学习了一下,算是刚好入了个门吧:在gitcafe上有一个gitcefe-pages分支,可以用于展示我们的一个页面,给我们提供了一个免费的空间,也可以使用它的二级域名,但是项目名称和****.gitcafe.com一样(二级域名):而且一个账号只能有一个这样的页面: 如果我们要想搭建一个页面,首先我们要申请一个gitcafe的账号(github也有这个功能,但是速度没

python爬虫抓网页的总结

python爬虫抓网页的总结 更多 python 爬虫 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了. 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不

用Python抓网页的注意事项

用Python编一个抓网页的程序是非常快的,下面就是一个例子: import urllib2 html = urllib2.urlopen('http://blog.raphaelzhang.com').read() 但是在实际工作中,这种写法是远远不够的,至少会遇到下面几个问题: 网络会出错,任何错误都可能.例如机器宕了,网线断了,域名出错了,网络超时了,页面没有了,网站跳转了,服务被禁了,主机负载不够了… 服务器加上了限制,只让常见浏览器访问 服务器加上了防盗链的限制 某些2B网站不管你HT

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号.有所收获.这里总结下个人经验. 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  在PC测试可以正常运行,在它那里就会挂的现象. 老样子,我将在代码里注释清楚.使用下面的函数,将会获得两种形式的 cookie,一种保存在文件中,一种直接以变量的形式返回, 经验提示: 有时候,在不同的代码运行环境中,带着文件cookie 去访问会成功,而变量却失败,有时候却想法.不过, 目前,这两种方法总有一种会成功. 1 functi

利用CSS制作静态网页的注意事项

利用CSS制作静态网页主要是在<head>里面使用外联CSS文件来赋予网页样式 首先用div分区块,了解网页布局,脑子里面有个大概的页面布局 目前学习写的几种的网页布局可以分为以下几种情况: 1.页面中间 centen ,两边留白 :直接测量 centen 内容的宽度和高度,利用 maigin:auto 让内容居中即可: 2.页面顶部 head 满页面内容 ,下面centen 居中 ,两边留白:head 宽度设为100%,中间centen 内容的宽度和高度,利用 maigin:auto 让内容