1. nodejs 爬虫
1.1 需要用到的模块 cheerio
采用jquery操作来处理获取到的dom节点
1.2 对于HTML、XML 等 SGML 类语言的转义序列,可以采用 html-entities 模块来进行反转义
1.3
使用request模块进行请求网页
或者使用superagent
2. 会话控制
2.1 什么是会话控制
http协议:
是web服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议。
http无状态:
指的是http请求是独立的,不持久的,不会维护http请求数据
简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到,这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。
那么问题来了,比如我上一次访问,登陆了,下一次访问,又让我登陆,那岂不是很不爽
2.2 cookie
2.2.1 当访问一个页面的时候,服务器在与浏览器http进行通信过程中,命令浏览器存储一个字符串;浏览器再次访问相同域名的网页时候,浏览器会把上次存储的数据给取出来。
2.2.2 第一次访问一个服务器,不可能携带cookie。 必须是浏览器在第一次请求中,携得到cookie信息,然后存储,此后每一次浏览器往这个服务器发出的请求,都会携带这个cookie。
2.3 cookie的特点
2.3.1 cookie是不加密的,用户可以自由看到;
2.3.2 用户可以删除cookie,或者禁用它
2.3.3 cookie可以被篡改
2.3.4 cookie可以用于攻击
2.3.5 cookie存储量很小 未来可能被localStrorage替代
2.4 cookie的应用场景,做购物车,上一次的访问记录等
2.4 如何使用cookie?
2.2.1 在服务器中设置cookie, res负责设置cookie发送浏览器, req负责识别浏览器发送过来的cookie。
2.2.2 在express中使用cookie,需要借助第三方模块,cookie-parser
2.4 cookie的格式 (在浏览器中的格式)
Set-Cookie : name=value;[expires=date];[path=path];[domain=domainname];[secure];
name # 设置cookie的key
value # 设置cookie的值
expires # 设置cookie的过期时间
path # 设置cookie的有效范围
domain # 设置cookie的域,支持cookie跨域使用
sucre # 如果要求安全的cookie 必须要通过https协议来进行传输
示例:
Set-cookie:
id="laowang";expires=Monday,21-Oct-05 12:00:00 GMT;domain="aaa.com";path="/";secure;
2.5 在nodejs中设置cookie
res.cookie("key","value",{选项配置})
2.6 在nodejs中获取cookie
使用第三方模块 cookie-parser
使用方法:
# 引入模块 var cookieParser = require("cookie-parser");
# 设置路由中间件 app.use(cookieParser
# 获取cookie req.cookies
浙公网安备 33010602011771号