《python爬虫学习》:Cookie的使用

为什么要使用Cookie呢?

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)

比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。

获取Cookie保存到变量

代码如下:

#encoding=utf-8
#保存cookie到变量
import urllib2
import cookielib
#第一步:得到一个cookie实例对象来保存Cookie内容
cookie=cookielib.CookieJar()
#第二步:利用urllib2库的HTTPCookieProcessor对象
hander=urllib2.HTTPCookieProcessor(cookie)
#第三步:得到一个opener
opener=urllib2.build_opener(hander)
response=opener.open("http://www.baidu.com")
for item in cookie:
    print "Name="+item.name
    print "Value="+item.value

获取Cookie保存到文件

#encoding=utf-8
#完成的功能为:将cookie写入文件中
import urllib2
import cookielib
file="cookie.txt"
#第一步:利用FileCookieJar的子类MozillaCookieJar
cookie=cookielib.MozillaCookieJar(file)
#第二步:用HTTPCookieProcessor来创建一个Cookie的处理器
hander=urllib2.HTTPCookieProcessor(cookie)
#第三步:创建一个opener
opener=urllib2.build_opener(hander)
#创建一个请求
response=opener.open("http://www.baidu.com")
#第四步:将cookie保存到文本中
cookie.save(ignore_discard=True,ignore_expires=True)

读取文件中的Cookie并访问

#encoding=utf-8
#从文本中读取cookie来访问网页
import urllib2
import urllib
import cookielib
file="cookie.txt"
#第一步:创建一个cookie变量
cookie=cookielib.MozillaCookieJar()
#第二步:对文件读取cookie到变量中
cookie.load(file,ignore_discard=True,ignore_expires=True)
#第三步:利用urllib2的HTTPCookieProcessor来创建一个cookie处理器
hander=urllib2.HTTPCookieProcessor(cookie)
#第四步:创建一个opener
opener=urllib2.build_opener(hander)
#创建一个请求
request=urllib2.Request("http://www.baidu.com")
response=opener.open(request)
print response.read()

利用Cookie模拟网站登陆

创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。

#encoding=utf-8
#功能:模拟网站登陆
import urllib2
import urllib
import cookielib
#第一步:创建一个cookie变量
file="cookie_1.txt"
cookie=cookielib.MozillaCookieJar(file)
#第二步:利用urllib2的HTTPCookieProcessor来创建一个cookie处理器
hander=urllib2.HTTPCookieProcessor(cookie)
#第三步:创建一个opener
opener=urllib2.build_opener(hander)
#要传送的data
values={"stuid":"xxxxx","pwd":"xxxxxx"}
data=urllib.urlencode(values)
url="http://idas.uestc.edu.cn/authserver/login"
request=urllib2.Request(url,data)
#模拟登陆
response=opener.open(request)
#第四步:保存cookie
cookie.save(ignore_discard=True,ignore_expires=True)
#利用此时的cookie变量来访问另外一个网站
gradeurl="http://bbs.uestc.edu.cn/"
response=opener.open(gradeurl)
print response.read()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值