爬虫之cookiejar模块-飞外

有时候我们需要爬一些需要登录才能进入网页,这个时候就要用到cookie相关的一些模块来操作了

内置的http包里包含了cookie相关的一些模块,通过她们我们可以自动使用cookie

CookieJar管理储存cookie,像传出的http请求添加cookiecookie存储在内存中,CookieJar示例回收后cookie将自动消失
# 根据创建的cookie生成cookie的管理器cookie_handle = request.HTTPCookieProcessor(cookie)# 创建http请求管理器http_handle = request.HTTPHandler()# 创建https管理器https_handle = request.HTTPSHandler()# 创建求求管理器,将上面3个管理器作为参数属性# 有了opener,就可以替代urlopen来获取请求了opener = request.build_opener(cookie_handle,http_handle,https_handle)def login(): 负责初次登录 需要传递用户名和密码,来获取登录的cookie凭证 # 登录url,需要从登录form的action属性中获取 url = 'http://www.renren.com/PLogin.do' # 登录所需要的数据,数据为字典形式, # 此键值需要从form扁担中对应的input的name属性中获取 data = { 'email':'136808069@qq.com', 'password':'123456' # 将数据解析成urlencode格式 data = parse.urlencode(data) req = request.Request(url,data=data) # 正常是用request.urlopen(),这里用opener.open()发起请求 response = opener.open(req)
# 如果已经执行了上面的login函数, # 那么此时的opener已经是包含了cookie信息的一个opener对象 res = opener.open(url) html = res.read().decode() with open('renren.html','w') as f: f.write(html)