分享

直接使用cookies登录

 217小月月坑 2015-12-02
我们已经获取了cookies,本来按照剧情发展,我们下一步应该是使用这个cookies模拟登录了,但是偏偏我是一个比较欠的人,我想要弄清楚我们前面三种方法获取到的cookies是不是一样的,哦,不。其实应该是四种方法,那么我们现在就来看看这四个cookies有什么区别吧

1. 从本地文件获取的cookies
    我们前面说过,我们找到的存放cookies的文件是一个叫 cookies.sqlite 的文件,这是一个数据库文件,我使用的linux系统要查看这个文件还需要安装别的程序,但是我想,既然这个是浏览器生成的文件,那么为了安全起见,它很可能会对数据进行各种处理,等到调用的时候,再按照自己的规则来进行解码,如果是这样的话,我觉得我们没有必要去深入的研究这个文件,而且它相对于其他两种方法来说也不是那么好用,所以对这种情况不予讨论
    
2. 使用浏览器的调试工具
    这里其实可以获取到的有两个cookies,这也就是我前面为什么说一共有4个cookies的原因
    我使用的是火狐浏览器,在爬虫的学习或者linux系统中,我觉得这款浏览器相对好用一些,其他的浏览器或许也有这样的功能但是我不是很熟悉,所以这里就以火狐浏览器来说明,为了便于对比,我这里用百度首页作为例子,好了,首先登录百度首页,然后按F12调出控制台,你会看到这样的界面
 
 
     我们发现这里的cookies有很多的名称和内容,我们暂且不考虑这里的cookies是否全部都要使用到,我们先来看看另一种获取cookies的方法,就在Cookies稍左边的网络选项卡里面
 
 
 我们可以看到这里有个响应头信息,也有请求头信息,我们前面在讨论浏览网页的流程这个问题时提到,客户端向服务器端发送请求,然后服务器端响应请求并发回数据,我们在网络选项卡这里看到有很多的 GET+xxxxxxxx之类的东西,可见,在我们打开一个网站的时候,所有的网页并不是一下子全部显示出来的,而是一部分一部分内容的请求响应然后发送接收数据,然后再把整个网页的内容慢慢的显示出来。在请求头信息这里我们也看到有一个cookies,那么这跟前面的cookies是不是一样的呢?
我对比了很多网站,发现有的是一样的有的是不一样的,如果感兴趣的话可以自己去尝试一下
3. 通过代码获取的cookies


#!/uer/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
'''
直接使用已有的cookies实现模拟登录
'''

import urllib2

url = 'http://www./userinfo.php?uid=409557'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'
host = 'www.'
cookie = 'lvyebbs=ddeb08de3577f8f4b55598e0502c3e7330b72c95333c09300ee4704133f6c621; PHPSESSID=6i77tie2h5j4un5168l803va05'
headers = {'User-Agent':user_agent,
'Host':host,
'Cookie':cookie}

request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request)
print response.read()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多