1、cookie & session简介
-由于http协议的无记忆性,人们为了弥补这个这个缺憾,所采用的一个补充协议
-cookie是发放给用户(即http浏览器)的一段信息(通常记录用户身份),session是保存在服务器上的对应的另一半信息,用来记录用户信息
(1)cookie和session的区别
-存放位置不同
-cookie不安全
-session会保存在服务器上一定时间,会过期
-单个cookie保存数据不超过4K,很多浏览器限制一个站点最多保存20个
(2)session的存放位置
-存在服务器端
-一般情况,session是放在(想要速度快的话放内存)内存中或者(默认放)数据库中
-没有cookie登录,可以看到,没有使用cookie则反馈网页为未登录状态
from urllib import request
if __name__ == '__main__':
url = "https://www.renren.com/965187997/profile"
#req = request.Request(url)
rsp = request.urlopen(url)
html = rsp.read().decode()
'''
UnicodeEncodeError: 'gbk' codec can't encode character '\ue600' in position 145620: illegal multibyte sequence
解决:改为utf-8
'''
with open("rsp.html","w") as f:
f.write(html)
2、cookie登录、访问、属性、保存
(1)直接把cookie复制下来,然后手动放入请求头(例:访问人人网)
# 爬虫使用cookie
from urllib import request
if __name__ == '__main__':
url = "http://www.renren.com/970362268"
headers = {
"cookie":"_r01_=1; ick=1a32e31e-bdfa-408b-8b87-68ac0c4ff4c7; anonymid=ju9fbgww-soghnp; depovince=GW; JSESSIONID=abcb7WJ_ynJeK_VXV2aOw; ick_login=c85d8114-439e-4d82-8e5f-10646cd37430; t=62d2b8164ae2b729d12263c9f4c482e68; societyguester=62d2b8164ae2b729d12263c9f4c482e68; id=970362268; xnsid=ff14ddfa; ver=7.0; loginfrom=null; jebe_key=16d9bc6a-222a-40ce-af09-9a18a0663e8c%7C57573f7