1.爬虫抓取css
爬虫抓取就是获取他人也面的内容,显示在本身的页面里,咱们抓取https://cnodejs.org/getstart的:html
显示在本身页面里。node
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "express": "~3.4.8", "static-favicon": "~1.0.0", "morgan": "~1.0.0", "cookie-parser": "~1.0.1", "body-parser": "~1.0.0", "debug": "~0.7.4", "ejs": "~0.8.5", "formidable": "*", "mongodb":"*", "mongoskin":"*", "express-session":"*", "superagent":"*", "cheerio":"*" } }
依赖加入,一个superagent一个cheerio,前面是获取页面内容,后面是筛选内容。mongodb
咱们npm install下载依赖。数据库
index.js引入:express
var superagent = require('superagent'); var cheerio = require('cheerio');
咱们把内容显示在list页面里,改变/list路由处理。npm
app.get('/list', function(req, res){ var targetUrl = 'https://cnodejs.org/getstart'; superagent.get(targetUrl) .end(function (err, ares) { console.log(ares.text); res.render('list', { text: ares.text }); }); });
地址输入:http://localhost:1234/listmarkdown
显示了html页面源码:cookie
此时若是咱们有jq相似工具,$(".xx").html()就能够拿到内容了,cheerio就是相似实现,返回的html咱们当作dom树处理就能够了。session
咱们在/list加入cheerio的处理:
app.get('/list', function(req, res){ var targetUrl = 'https://cnodejs.org/getstart'; superagent.get(targetUrl) .end(function (err, ares) { console.log(ares.text); var $ = cheerio.load(ares.text); //经过CSS selector来筛选数据 var arr=[]; $('.markdown-text p strong').each(function (idx, element) { console.log($(element).html()); arr.push($(element).html()); }); res.render('list', { text: arr }); }); });
list.html页面:
<!DOCTYPE html> <html> <head> <title>list</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <ul> <% for(var i=0; i<text.length; i++) {%> <li><%= text[i] %></li> <% } %> </ul> </body> </html>
显示:
好像有点问题,选的不是全是须要的内容,要获取看来只能一部分一部分的拿会正确显示。
2.登陆逻辑
登陆其实使用的就是查询处理,
用户发送请求,req会携带用户名和密码
req的用户名做为依据,咱们去数据库查询,会有2中结果,要吗不存在,要吗存在,
若是不存在直接登陆失败,存在咱们把数据库中用户名记录字段密码值返回
用户名存在,返回数据库密码和用户登陆req的密码对比,要吗成功,要吗失败
成功,session的name赋值为用户名,进入首页,失败返回到登录页
总结:
nodejs+express+mongodb+ejs!