技术文章 > Python技术 > Python爬虫 > 正文

Cookie在python爬虫中怎么用?Cookielib又是什么?

我们登录一个网页或者软件的时候,都要输入账号才能进入界面,随后就可以看其中的内容了。Cookie就类似于担任一个审查员的身份。对想要访问人的身份进行大大小小的审核,合格的才能放任通行,之后我们就可以愉快的去获取自己想要的网页内容啦~听起来是不是非常厉害的作用?本篇小编就来教大家Cookie的用法,一起看看吧。


一、获取 Cookie 保存到变量

首先,我们先利用 CookieJar 对象实现获取 cookie 的功能,存储到变量中,先来感受一下

import urllib2
import cookielib
#声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler=urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#此处的open方法同urllib2的urlopen方法,也可以传入request
response = opener.open('http://www.baidu.com')
for item in cookie:
    print 'Name = '+item.name
print 'Value = '+item.value

我们使用以上方法将cookie保存到变量中,然后打印出了cookie 中的值,运行结果如下

Name = BAIDUID
Value = B07B663B645729F11F659C02AAE65B4C:FG=1
Name = BAIDUPSID
Value = B07B663B645729F11F659C02AAE65B4C
Name = H_PS_PSSID
Value = 12527_11076_1438_10633
Name = BDSVRTM
Value = 0
Name = BD_HOME
Value = 0


二、保存 Cookie 到文件

在上面的方法中,我们将 cookie 保存到了 cookie 这个变量中,如果我们想将 cookie 保存到文件中该怎么做呢?这时,我们就要用到 FileCookieJar 这个对象了,在这里我们使用它的子类 MozillaCookieJar 来实现 Cookie 的保存

import cookielib
import urllib2
 
#设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)


三、从文件中获取 Cookie 并访问

那么我们已经做到把 Cookie 保存到文件中了,如果以后想使用,可以利用下面的方法来读取 cookie 并访问网站,感受一下

import cookielib
import urllib2
 
#创建MozillaCookieJar实例对象
cookie = cookielib.MozillaCookieJar()
#从文件中读取cookie内容到变量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
#创建请求的request
req = urllib2.Request("http://www.baidu.com")
#利用urllib2的build_opener方法创建一个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open(req)
print response.read()


拓展:

cookielib 模块的主要作用是提供可存储 cookie 的对象,以便于与 urllib2 模块配合使用来访问 Internet 资源。Cookielib 模块非常强大,我们可以利用本模块的 CookieJar 类的对象来捕获 cookie 并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有 CookieJarFileCookieJarMozillaCookieJarLWPCookieJar。 它们的关系:CookieJar —— 派生 ——>FileCookieJar —— 派生 ——->MozillaCookieJar LWPCookieJar


以上就是python爬虫Cookie的使用方法以及Cookielib的简介。之前我们有讲过urllib模块,不过跟cookielib息息相关的是urllib2模块,小伙伴们不要记混了哦~更多Python学习推荐:PyThon学习网教学中心

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 Python3爬虫入门:Cookies池的搭建
 Python:使用Cookie绕过验证码
 flask框架中的cookie和session
 Python3爬虫如何带上cookie?
相关视频章节
 实现爬虫模块的66ip爬虫_使用加密的js生成cookie
 国家企业信用公告系统爬虫_解决传递cookie问题
 国家企业信用公告系统爬虫_实现生成cookie的脚本
 Post 登录 Cookies Session
推荐视频
视频教程分类