Urllib库的使用八---进阶三(Cookie设置)

2018-10-18  本文已影响0人  IT的咸鱼
Cookie 是指某些网站服务器为了辨别用户身份和进行Session跟踪,而储存在用户浏览器上的文本文件,Cookie可以保持登录信息到用户下次与服务器的会话。

Cookie原理 HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制 Cookie是http消息头中的一种属性,包括:

Name Cookie名字
Value Cookie的值
Expires/Max-Age Cookie的过期时间
Path Cookie作用路径
Domain Cookie所在域名
使用Cookie进行安全连接(Secure),指的是该cookies是否能仅能够被安全协议传输。
sameSite是否是同一个站点

Cookies保持状态

Cookie由变量名和值组成,根据 Netscape公司的规定,Cookie格式如下:

Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE

Cookie应用 Cookies在爬虫方面最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续。

实例

对人人网进行模拟登录
0F9AAB1B-F733-471A-9447-9AE6C6636417
获取到一个有登录信息的Cookie模拟登陆
# -*- coding:utf-8 -*-
import urllib.request

url = 'http://www.renren.com/'

#根据刚才的登录信息来构建一个已经登录过的用户的headers信息

headers = {
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'User-Agent':' Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:59.0) Gecko/20100101 Firefox/59.0',
    'Upgrade-Insecure-Requests':'1',
    'Connection':'keep-alive',
    'Host':'www.renren.com',
    'Cookie':'anonymid=jgoj4xlw-3izsk4; depovince=BJ; jebecookies=62d94404-de1f-450a-919b-a2d9f4c8b811|||||; _r01_=1; JSESSIONID=abchsGLNgne0L8_wz2Emw; ick_login=cf54f2dc-8b0b-417a-96b2-32d4051f7236; jebe_key=02cb19ad-2966-4641-8828-217160ca67a0%7Cba6f6d6ec917200a4e17a85dbfe33a4a%7C1525230975024%7C1%7C1525230982574; t=87a502d75601f8e8c0c6e0f79c7c07c14; societyguester=87a502d75601f8e8c0c6e0f79c7c07c14; id=965706174; xnsid=e1264d85; ver=7.0; loginfrom=null; wp_fold=0',
}

# 2. 通过headers里的报头信息(主要是Cookie信息),构建Request对象
request = urllib.request.Request(url, headers=headers)

# 3. 直接访问renren主页,服务器会根据headers报头信息(主要是Cookie信息)
#,判断这是一个已经登录的用户,并返回相应的页面
response = urllib.request.urlopen(request)

# 4. 打印响应内容
print (response.read().decode())
上一篇 下一篇

猜你喜欢

热点阅读