目标 建立一个 lesson3 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/ 时,输出 CNode(https://cnodejs.org/ ) 社区首页的所有帖子标题和链接,以 json 的形式 知识点: 学习使用 superagent 抓取网页 学习使用 cheerio 分析网页 库介绍: superagent(http://visionmedia.github.io/superagent/ ) 是个 http 方面的库,可以发起 get 或 pos…
使用 superagent 与 cheerio 完成简单爬虫 目标 建立一个 lesson 3 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/ 时,输出 CNode(https://cnodejs.org/ ) 社区首页的所有帖子标题和链接,以 json 的形式. 输出示例: [ { "title":"[NODE PARTY][上海][6月9日 13:30]报名&答疑帖", "href":"…
打算要写一个公开课网站,缺少数据,就决定去网易公开课去抓取一些数据. 前一阵子看过一段时间的Node.js,而且Node.js也比较适合做这个事情,就打算用Node.js去抓取数据. 关键是抓取到网页之后如何获取到想要的数据呢?然后就发现了cheerio,用来解析html非常方便,就像在浏览器中使用jquery一样. 使用如下命令安装cheerio npm install cheerio Cheerio安装完成, 我们就可以开始工作了. 首先让我们来看一段javascript代码 这段代码可以下…
这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本,因为express因为版本的不同使用的方式也不同,我这算是目前最新的了吧 还没有装express的可以移步到这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令  express -e test  (这里把项目名设置为test…
一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以及模板的继承 可以参考官网:art-template.org      发现很多网站的页面的头部和尾部都是一样的,所以我们可以将头部和尾部提取出来,用art-template子模板,弄到一个单独页面中,其他页面继承这个页面     <!DOCTYPE html> <html lang=&qu…
在node.js中,有了 cheerio 模块.request 模块,抓取特定URL页面的数据已经非常方便. 一个简单的就如下 var request = require('request'); var cheerio = require('cheerio'); request(url,function(err,res){ if(err) return console.log(err); var $ = cheerio.load(res.body.toString()); //解析页面内容 })…
TCP和Node 传输控制协议是一个面向连接的协议,换句话说,它是一个传输层的协议,它主要的职务呢,就是确保信息传输的正确性. 我们使用的很多如HTTP协议都是基于TCP的,为什么呢?因为我们不希望传输的html文件缺斤少两吧,少了一个字符(字节)都可能会造成全体的崩盘吧? 连接数据库的时候我们用的其实也是TCP套接字. 本来吧,IP数据包的传输是无序的?这就是TCP存在的理由,我们总是需要一些规则来限定我们的生活.就像法律一样,没有法律,社会能安定吗?所以,我们需要TCP.同时,为了能够更加自…
原以为数据查出来了,要展示是鸡毛蒜皮的事儿!谁知道,我弄了一天....我错就错在没把connection.query里面. 下面的例子是可以的了! 看过我之前文章的同学,应该很熟悉下面的代码,对!主要是红色部分.每次进步一点点,很多时候就这么一点点,可能对以后很大的启发也不一定. 依旧用回我老掉牙的练习库: -- -- 数据库: `test` -- -- -------------------------------------------------------- -- -- 表的结构 `my…
先在server.js里面引入: var fs = require('fs');   然后写入  // 往writeme.txt文件 写入一些内容     fs.writeFile('./writeme.txt', [zuidi, now, address, text], function (err) {         // 判断 如果有错 抛出错误 否则 打印写入成功         if (err) {             throw err;         }         co…
说明(2017-5-2 17:57:23): 1. foo.js var http = require("http"); var url = require("url"); var server = http.createServer(function(req,res){ // var href = url.parse(req.url).href; // 直接用req.url就能获取到地址栏,不用url.parse折腾了 var href = req.url; //…