Python网络爬虫之Cookie技术(二)

保存Cookie到变量


如果要管理HTTP Cookie,需要创建一个包含CookieJar对象的HTTPCookieProcessor处理程序,可以将不同类型的CookieJar对象传递给HTTPCookieProcessor,进而可以得到不同的Cookie处理。


下面代码显示了如何将获取到的Cookie变量保存下来,并打印出来,如下:



上述代码中,首先创建了一个CookieJar对象,用于管理和存储cookie内容,然后将其传递到HTTPCookieProcessor中;接着,创建一个opener,并将HTTPCookieProcessor对象传入到opener,这样在获取URL时,cookie信息就自动存储在CookieJar对象中;最后,将获取到的cookie值打印出来如下:


从打印结果来看,cookie内容信息就是键值对的组合。


保存cookie到文件


如果想将cookie信息保存到文件中,就要用到我们之前将的CookieJar的子类,例如采用MozillaCookieJar,直接上代码:

代码中最大的不同是在创建CookieJar对象的时候指定一个保存cookie信息的文件,在调用MozillaCookieJar中的save方法时,要注意里面的两个参数含义,ignore_discard的意思是即使cookies将被丢弃也将它保存下来,ignore_expires的意思是如果在该文件中cookies已经存在,则覆盖原文件写入,在这里,我们将这两个全部设置为True。运行之后,cookies将被保存到cookie.txt文件中,我们查看一下内容:


从文件中读取cookie并访问


当cookie信息保存到本地文件中后,下次再次访问该网站时,我们就可以读取cookie文件信息并访问网站,上代码:

利用cookie模拟登录


下面将利用前面讲解的cookie方法实现模拟登录某教育系统,进而查询成绩为例,直接上代码:


注:以上代码仅供说明技术原理所用。


代码原理是创建带有cookie变量的opener,然后构建用户登录信息postData,并将其传入到opener中的open方法中;此时的cookie登录信息便存储在cookie变量中,并将其写入到外部文件中;最后利用已有登录信息的opener去访问成绩页面,便能够顺利拿到包含成绩的页面信息啦。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容