pythoncookie自动登录_Python爬虫连载6-cookie深入使用实例化实现自动登录

一、使用cookie登录

1.直接把cookie复制下去,然后手动放到请求头

2.http模块包含一些关于cookie的模块,通过他们我们可以自动使用cookie

(1)cookieJar

管理存储cookie,向传出的http请求添加cookie;cookie存储在内存中,CookieJar实例回收后cookie​将消失;

(2)FileCookieJar(filename,delayload=None,policy=Nnone)

使用文件管理cookie​;filename是保存cookie的文件

filename是保存cookie的文件

(3)MozillaCookieJar(filename,delayload=None,policy=None)

创建于mocilla浏览器cookie,txt兼容的FileCookieJar实例

(4)LwpCookieJar(filename,delayload-None,policy=None)

创建与libww-perl标准兼容的FileCookieJar实例

(5)​他们的关系是:CookieJar-->FileCookirJar-->MozillaCookieJar & LwpCookieJa

3.利用cookiejar访问人人网

自动使用cookie登录,​大致流程为:(1)打开登陆页面后自动通过用户名密码登录​;(2)自动提取反馈回来的cookie​;(3)利用提取的cookie登录隐私页面​;

4.handler是Handler的实例,常用参看案例代码

(1)用来处理复杂请求

#生成cookie的管理器

cookie_handler = request.HTTPCookieProcessor(cookie)

#创建http请求管理器

http_handler = request.HTTPHandler()

#生成https管理器

https_handler = request.HTTPHandler()

(2)创立handler后,使用opener打开,打开后相应的业务由相应的handler处理

(3)cookie作为一个变量,打印出来

cookie的属性​:

name:名称 value​:值 domain:可以访问此cookie的域名 expires:过期时间 size:大小 Http字段

from urllib import request,parse

from http import cookiejar

#创建cookiejar实例

cookie = cookiejar.CookieJar()

#生成cookie的管理器

cookie_handler = request.HTTPCookieProcessor(cookie)

#创建http请求管理器

http_handler = request.HTTPHandler()

#生成https管理器

https_handler = request.HTTPHandler()

#创建请求管理器

opener = request.build_opener(http_handler,https_handler,cookie_handler)

def login():

"""

负责初次登录

需要输入用户名密码

:return:

"""

url = "http://www.renren.com/PLogin.do"

data = {

"email":"1215217867@qq.com",

"password":""

}

#把数据进行编码

data = parse.urlencode(data)

#创建一个请求对象

req = request.Request(url,data=data.encode())

#使用opener发起请求

rep = opener.open(req)

def getHomePage():

url = "http://www.renren.com/965187997/profile"

#如果已经执行了login函数,则opener自动已经包含相应的cookie值

rsp = opener.open(url)

html = rsp.read().decode()

with open("rsp.html","w") as f:

f.write(html)

if __name__ == "__main__":

"""

执行完login之后,会得到授权之后的cookie

我们尝试把cookie打印出来

"""

login()

print(cookie)

for item in cookie:

print(type(item))

print(item)

for i in dir(item):

print(i)

getHomePage()

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vY29tbW9uLzE3MDc0MzUvMjAyMDAyLzE3MDc0MzUtMjAyMDAyMTAwMDIzMTU2OTMtMTEwNDQ2MzQzOC5qcGc=.jpg

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vY29tbW9uLzE3MDc0MzUvMjAyMDAyLzE3MDc0MzUtMjAyMDAyMTAwMDIzMjkxNzgtOTI0Mzc0OTc4LmpwZw==.jpg

二、源码

Reptitle6_CookieJar.py

https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_CookieJar.py​

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vY29tbW9uLzE3MDc0MzUvMjAyMDAyLzE3MDc0MzUtMjAyMDAyMTAwMDIzNDEzMTQtNDYyNzQ4MjUyLmpwZw==.jpg

JSP(4)—Cookie创建及简单案例(自动登录)

Cookie的创建: 创建一个JSP页面,第一次访问时显示没有Cookie,正在创建,再次访问就会自动显示cookie的名称,并设置cookie过期时间 <% //在javaweb规范中使用Co ...

Python爬虫入门:Cookie的使用

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...

Python爬虫入门之Cookie的使用

本节我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要 ...

Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租

前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Eastmount PS:如有需要Python学习资料的小伙伴可以加 ...

Python爬虫连载1-urllib&period;request和chardet包使用方式

一.参考资料 1.图灵工业出版社 2.<精通Python爬虫框架Scrapy>人民邮电出版社 3.[Scrapy官方教程](http://scrap ...

芝麻HTTP:Python爬虫入门之Cookie的使用

为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓 ...

Python爬虫基础之Cookie

一.Cookie会话 简单地说,cookie就是存储在用户浏览器中的一小段文本文件.Cookies是纯文本形式,它们不包含任何可执行代码.一个Web页面或服务器告之浏览器来将这些信息存储并且基于一系列 ...

spring mvc 用cookie和拦截器实现自动登录(&sol;免登录)

Cookie/Session机制详解:http://blog.csdn.net/fangaoxin/article/details/6952954 SpringMVC记住密码功能:http://blo ...

Python爬虫连载5-Proxy、Cookie解析

一.ProxyHandler处理(代理服务器) 1.使用代理IP,是爬虫的常用手段 2.获取代理服务器的地址: www.xicidaili.com www.goubanjia.com 3.代理用来隐藏 ...

随机推荐

TortoiseSVN的合并对比工具TortoiseMerge启动时很慢很卡的解决办法

用了新版本的TortoiseSVN,但是在进行文件版本对比或者是解决冲突的时候,每次都要等上好几秒钟,TortoiseMerge窗口才显示出来.在Visual Studio中使用这个作为SVN工具,也 ...

Es使用。

http://jingyan.baidu.com/article/3052f5a1e8a06397f31f8699.html --------------------------- http://el ...

用python写makefile

温馨提示:阅读本文的同学最好能了解makefile和python的编写规则. 不懂的同学能够先保存在收藏夹.以便日后查看. 事实上之前我一直非常懒,我不想了解makefile规则.由于在linux下开 ...

poj 1845&lpar;等比数列前n项和及高速幂&rpar;

Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13959   Accepted: 3433 Descripti ...

优雅的让Fragment监听返回键

转载请注明出处:http://write.blog.csdn.net/postedit/40507387 Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设Fragm ...

QString转LPCWSTR

QFileInfo info("./records.db"); std::string str = info.absoluteFilePath().toStdString(); / ...

MVC控制器里面使用dynamic和ExpandoObject

MVC控制器里面使用dynamic和ExpandoObject 在很多时候,我们在数据库里面定义表字段和实际在页面中展示的内容,往往是不太匹配的,页面数据可能是多个表数据的综合体,因此除了我们在表设计 ...

Java Scanner类

package io; import java.util.*; public class useScanner { public static void main(String[] args) { S ...

Can you answer these queries&quest; HDU - 4027(线段树&plus;技巧)

题意:给一个数组序列, 数组长度为100000 两种操作: 一种操作是将某一个固定区间所有数开方(向下取整) 另一种操作是询问某个区间的所有数字之和. 由于数不超过263,因此开个七八次就变成1,由于 ...

GitHubDesktop权限问题解决办法

Desktop对于管理仓库非常方便.实用 很多人实用Desktop将仓库项目clone到本地 但是更新后同步时出现了如下权限错误: Error Authentication failed. You m ...

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值