python 爬虫 cookies设置,获取登陆后界面。

前言

Cookie

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

Cookie原理

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

Cookie名字(Name)

Cookie的值(Value)

Cookie的过期时间(Expires/Max-Age)

Cookie作用路径(Path)

Cookie所在域名(Domain),

使用Cookie进行安全连接(Secure)。

 

前两个参数是Cookie应用的必要条件,另外,还包括Cookie大小(Size,不同浏览器对Cookie个数及大小限制是有差异的)。

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

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

Cookie应用

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

使用Cookies获取qq空间登陆后界面

在网页登录qq空间,进入说说界面,F12或检查,刷新一下,找到网页主题文件,复制cookies

# -*- coding:UTF-8 -*-
import urllib2
headers = {
    "Host":"user.qzone.qq.com",
    "Connection":"keep-alive",
    "Upgrade-Insecure-Requests":"1",
    "user-agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Language":"zh-CN,zh;q=0.9",
    "Cookie": "****************************"

}

request = urllib2.Request("https://user.qzone.qq.com/2844194604", headers = headers)
response = urllib2.urlopen(request)
print response.read()

结果:一段巨大的html

模拟登录要注意几点:

  1. 登录一般都会先有一个HTTP GET,用于拉取一些信息及获得Cookie,然后再HTTP POST登录。
  2. HTTP POST登录的链接有可能是动态的,从GET返回的信息中获取。
  3. password 有些是明文发送,有些是加密后发送。有些网站甚至采用动态加密的,同时包括了很多其他数据的加密信息,只能通过查看JS源码获得加密算法,再去破解加密,非常困难。
  4. 大多数网站的登录整体流程是类似的,可能有些细节不一样,所以不能保证其他网站登录成功。

有问题留言,我尽力帮助

 

 

 

猜你喜欢

转载自blog.csdn.net/Da___Vinci/article/details/82901061
今日推荐