在前面一节中,我已经简单的说了cookies的一些内容,我相信大家也不陌生,好多的杀毒软件会常常提示说为了保护用户的隐私,需要定期清理cookies,等等,这一节,我们就来认真聊一聊cookies
为了增加可信度,我还是引用百度上百科的一段文字Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站 时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通 过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从 本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以 “名/值”对(name-value pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信 息,也无法得到你的电脑上的其它任何东西。 Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。 由于Cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。上面的一段文字很通俗易懂了,我在网上查找关于cookies的资料的时候也看到许多有意思的描述,但是在这里就不跟大家说了,有兴趣可以自己去看一下。对于我来说,我想告诉大家的信息是:cookies 能让你在不重新输入用户ID和密码的情况下自动登录网站 那么,我能不能通过什么方法获取到cookies,然后直接使用这个cookies来模拟登录呢,这似乎是一个很值得尝试的做法,但是首先,我们应该从怎么获取cookies开始关于怎么获取cookies,我能想到并且试验过的有三种方法: 1. 既然cookies是存在本地文件的,那我就找出存放的文件名,再查看里面的内容 我使用的是firefox,这里说一下方法: 1. 在地址栏输入:about:support,然后你就会看到这样一个界面
然后找到配置文件夹---->打开目录,找到 cookies.sqlite或者相关文件,这些就是啦
2. 通过浏览器的工具查看
还是火狐,按F12,会出现这样的窗口这里的cookies有很多项,但是哪一些是我们需要的呢?
我们在cookies列表中随便选择一个,然后点击右键,会弹出这样一个菜单我们看到有复制删除之类的选项,所以有一个很笨的方法,把cookies一条一条删除然后再登录看看哪些是必须的哪些是不必须的
3. 通过代码获取 cookies也是可以通过代码获取的,主要使用到了urllib2库和cookielib库,这里将代码贴上来,先不必急着理解,这里只是告诉大家有这么一个方法,具体的情况后面会详细的讲 cookielib 这个模块import urllib2import cookielib#声明一个CookieJar对象实例来保存cookiecookie = cookielib.CookieJar()#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器handler=urllib2.HTTPCookieProcessor(cookie)#通过handler来构建openeropener = urllib2.build_opener(handler)#此处的open方法同urllib2的urlopen方法,也可以传入requestresponse = opener.open('http://www.baidu.com')for item in cookie: print 'Name = '+item.name print 'Value = '+item.value
好了,到这里我将我能想到的获取cookies的方法和实例都列举出来了,那么下一步我们应该尝试能否直接使用我们获取到的cookies模拟登录