urllib_cookie

import urllib2, cookielib

cookielib: 主要作用是为urllib提供一个可用于存储cookie信息的对象,通常和urllib2模块结合着使用,通过这个对象可以用于跟踪后续请求中的cookie信息,自动管理cookie信息,这样就不需要我们每次请求的时候,都单独的设置cookie信息了。

1>创建一个用于跟踪cookie信息的对象

cookie_obj = cookielib.CookieJar()

2>根据cookie_obj对象,使用urllib2模块创建cookie信息的操作对象

# cookie_handler = urllib2.HTTPCookieProcessor(cookie_obj)

3>创建opener对象

# opener = urllib2.build_opener(cookie_handler)
# response = opener.open('http://neihanshequ.com/')

# for cookie in cookie_obj:
#     print 'key={}, value={}'.format(cookie.name, cookie.value)
#
# response = opener.open('http://www.baidu.com')
# for cookie in cookie_obj:
#     print 'baidu_key={}, baidu_value={}'.format(cookie.name, cookie.value)

如何将cookie信息保存成本地文件
CookieJar(保存cookie对象) — FileCookieJar — MozillaCookieJar(保存cookie文件)

# filename = 'cookie.txt'
# cookie_obj = cookielib.MozillaCookieJar(filename=filename)
#
# cookie_handler = urllib2.HTTPCookieProcessor(cookie_obj)
#
# opener = urllib2.build_opener(cookie_handler)
#
# response = opener.open('http://neihanshequ.com/')

# ignore_discard: True 即使cookie信息将要过期/废弃,也要将其保存到文件
# ignore_expires: True 即使cookie信息在文件中已经存在,仍然对其进行覆盖写入
# cookie_obj.save(ignore_discard=True, ignore_expires=True)

如何通过MozillaCookieJar对象发送请求时,加载本地的cookie.txt文件。

# cookie = cookielib.MozillaCookieJar()
# # 调用FileCookieJar类中的load()函数,加载本地文件的cookie信息
# cookie.load('cookie.txt', ignore_expires=True, ignore_discard=True)
#
# request = urllib2.Request('http://neihanshequ.com/')
# opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
#
# response = opener.open(request)
# print response

利用Cookie模拟网站的登录状态

cookie = cookielib.MozillaCookieJar(filename='stu_cookie.txt')

#
创建一个cookie数据的操作句柄handler

# cookie_handler = urllib2.HTTPCookieProcessor(cookie)
# headers = {
#      'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
# }

创建一个带有cookie信息的opener对象

# opener = urllib2.build_opener(cookie_handler)
#

表单数据要提交到的地址

# post_url = 'http://kaoshi.zhiyou900.com:8888/edustu/login/login.spr'
# post_data = urllib.urlencode({
#     'j_username':'13275975573',
#     'j_password':'123456'
# })
# response = opener.open(post_url, post_data)
#

成功登录之后,将服务器返回的Cookie信息,保存到本地

# cookie.save(ignore_discard=True, ignore_expires=True)
#
# print response.read()
#
cookie = cookielib.MozillaCookieJar()
cookie.load('stu_cookie.txt', ignore_expires=True, ignore_discard=True)

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
headers = {
    'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
}
request = urllib2.Request('http://kaoshi.zhiyou900.com:8888/edustu/me/edu/index.spr', headers=headers)
response = opener.open(request)
print response.read()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值