Python爬虫—1入门_3_cookie的使用
2017-04-06 19:19
706 查看
cookie,是值某些网站为了辨别用户身份、进行session追踪而存储在用户本地终端上的数据
1、opener
为了满足使用cookie的需求,这里就必须使用opener;
之前使用的urlopen就是一个特殊的opener,这里使用urlopen是无法运用cookie的;
因此,需要使用build_opener( )函数来创建一个新的opener。
2、cookielib模块
cookielib模块的主要作用就是提供存储cookie的对象,以便于与urlib2模块配合使用,
来访问internet资源。
2.1 获取cookie并保存到变量
例程如下:
import urllib2
import cookielib
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
response = opener.open("http://www.baidu.com")
for item in cookie:
print "Name = " + item.name
print "Value = " + item.value
程序输出:
Name = BAIDUID
Value = 6C7C4DF6D5952898E0BE9A24CA5710DC:FG=1
Name = BIDUPSID
Value = 6C7C4DF6D5952898E0BE9A24CA5710DC
Name = H_PS_PSSID
Value = 19187_1450_13290_17944_18205_18134_17001_15238_12293_16915
Name = PSTM
Value = 1459151870
Name = BDSVRTM
Value = 0
Name = BD_HOME
Value = 0
2.2 保存 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)
#创建请求,并获取服务器的相应
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard = True, ignore_expires = True)
2.3 从文件中获取cookie并访问
利用上面获取的cookie文件来访问网站
例程:
import urllib2
import cookielib
cookie = cookielib.MozillaCookieJar()
cookie.load("cookie.txt", ignore_discard=True, ignore_expires=True)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open("http://www.baidu.com")
print response.read( )
3 总结
默认的urlopen函数(一个特殊的opener),仅能处理不带任何信息的网页请求:
1)使用request = urllib2.Request(url[,data[, headers]]),创建request请求对象
2)使用response = urllib2.urlopen(request),即使用1)中创建的request对象来获取请求的页面
上述方式,不支持验证cookie以及其他HTTP高级功能。
为了能够支持验证cookie以及其他的HTTP高级功能,这里需要使用build_opener来自定义opener;
对于带cookie验证的opener创建过程如下:
1)cookie = cookielib.CookieJar( )创建一个空的cookie对象
2)handler = urllib2.HTTPCookieProcessor(cookie)使用cookie对象创建一个handler句柄
3)opener = urllib2.build_opener(handler)使用handler句柄创建一个opener;
4)response = opener.open(url)使用自定义的opener来请求网页并获取网页信息
注意:网站返回的cookie信息就会储存到cookie对象中;
我们可以保存这些cookie信息到文件,可以在下次访问时使用这些cookie信息。
例如:cookie对象创建之后,可以使用cookie.load()从文件中读取cookie信息;
这样就可以使用以前保存的cookie信息,来访问网页了。
1、opener
为了满足使用cookie的需求,这里就必须使用opener;
之前使用的urlopen就是一个特殊的opener,这里使用urlopen是无法运用cookie的;
因此,需要使用build_opener( )函数来创建一个新的opener。
2、cookielib模块
cookielib模块的主要作用就是提供存储cookie的对象,以便于与urlib2模块配合使用,
来访问internet资源。
2.1 获取cookie并保存到变量
例程如下:
import urllib2
import cookielib
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
response = opener.open("http://www.baidu.com")
for item in cookie:
print "Name = " + item.name
print "Value = " + item.value
程序输出:
Name = BAIDUID
Value = 6C7C4DF6D5952898E0BE9A24CA5710DC:FG=1
Name = BIDUPSID
Value = 6C7C4DF6D5952898E0BE9A24CA5710DC
Name = H_PS_PSSID
Value = 19187_1450_13290_17944_18205_18134_17001_15238_12293_16915
Name = PSTM
Value = 1459151870
Name = BDSVRTM
Value = 0
Name = BD_HOME
Value = 0
2.2 保存 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)
#创建请求,并获取服务器的相应
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard = True, ignore_expires = True)
2.3 从文件中获取cookie并访问
利用上面获取的cookie文件来访问网站
例程:
import urllib2
import cookielib
cookie = cookielib.MozillaCookieJar()
cookie.load("cookie.txt", ignore_discard=True, ignore_expires=True)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open("http://www.baidu.com")
print response.read( )
3 总结
默认的urlopen函数(一个特殊的opener),仅能处理不带任何信息的网页请求:
1)使用request = urllib2.Request(url[,data[, headers]]),创建request请求对象
2)使用response = urllib2.urlopen(request),即使用1)中创建的request对象来获取请求的页面
上述方式,不支持验证cookie以及其他HTTP高级功能。
为了能够支持验证cookie以及其他的HTTP高级功能,这里需要使用build_opener来自定义opener;
对于带cookie验证的opener创建过程如下:
1)cookie = cookielib.CookieJar( )创建一个空的cookie对象
2)handler = urllib2.HTTPCookieProcessor(cookie)使用cookie对象创建一个handler句柄
3)opener = urllib2.build_opener(handler)使用handler句柄创建一个opener;
4)response = opener.open(url)使用自定义的opener来请求网页并获取网页信息
注意:网站返回的cookie信息就会储存到cookie对象中;
我们可以保存这些cookie信息到文件,可以在下次访问时使用这些cookie信息。
例如:cookie对象创建之后,可以使用cookie.load()从文件中读取cookie信息;
这样就可以使用以前保存的cookie信息,来访问网页了。
相关文章推荐
- python 爬虫入门(5) url异常处理 ; cookie使用 ;cookielib
- Python爬虫入门:Cookie的使用
- Python爬虫教程——入门六之Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门(6):Cookie的使用
- Python爬虫入门:Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门四之Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门(6):Cookie的使用
- Python爬虫入门(6):Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门六之Cookie的使用
- Python爬虫入门(6):Cookie的使用
- 芝麻HTTP:Python爬虫入门之Cookie的使用
- python网络应用入门:网络爬虫的使用
- Python爬虫入门一之Urllib库的基本使用