python cookie使用_Python使用cookielib模块操作cookie的实例教程

cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和request。

核心类

1.Cookie该类实现了Netscape and RFC 2965 cookies定义的cookie标准,基本可以理解为某一条cookie数据。

部分代码如下,很多属性是不是很眼熟?

self.domain_initial_dot = domain_initial_dot

self.path = path

self.path_specified = path_specified

self.secure = secure

self.expires = expires

self.discard = discard

self.comment = comment

self.comment_url = comment_url

self.rfc2109 = rfc2109

2.CookiePolicy该类的主要功能是收发cookie,即确保正确的cookie发往对应的域名,反之一样。

3.DefaultCookiePolicy该类实现了CookiePolicy的接口。

4.CookieJarCookieJar是cookie的集合,可以包含有很多Cookie类,是我们的主要操作对象。里面有一系列的方法可以支持更加细致的操作!

5.FileCookieJar该类继承自CookieJar,CookieJar只是在内存中完成自己的生命周期,FileCookieJar的子类能够实现数据持久化,定义了save、load、revert三个接口。

6.MozillaCookieJar & LWPCookieJar两个实现类,继承关系如下:

实例:登录人人网在firefox下使用httpFox插件来查到人人网的登录时需要POST的地址是http://www.renren.com/ajaxLogin

而且查看到需要POST的DATA有email和password

python通过cookielib来处理cookie,以下是简单的代码

>>> import urllib

>>> import urllib2,cookielib

>>> login_page = "http://www.renren.com/ajaxLogin"

>>> cj = cookielib.CookieJar()

>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

>>> opener.add_handler = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]

>>> data = urllib.urlencode({"email":'username',"password":'password'})

>>> opener.open(login_page,data)

>

>>> if cj:

... for index,cookie in enumerate(cj):

... print index,':',cookie

...

0 :

1 :

2 :

3 :

4 :

5 :

6 :

7 :

8 :

9 :

10 :

11 :

>>>

可以和firebug或者httpFox中得到的cookie进行对比,值可能不一致,但key基本上是一致的,你每次登录应该都不一致

我也尝试过使用fidder模拟发送没有cookie的POST数据,但是没有得到想要的返回值

而加上cookie信息以后就可以正常的跳转到自己的主页了

好了,基本上了解了python中使用cookie来发送登录信息,现在我们来写一个小脚本来登录自己人人网。

#encoding=utf-8

import urllib2

import urllib

import cookielib

def renrenBrower(url,user,password):

login_page = "http://www.renren.com/ajaxLogin"

try:

cj = cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]

data = urllib.urlencode({"email":user,"password":password})

opener.open(login_page,data)

op=opener.open(url)

data= op.read()

return data

except Exception,e:

print str(e)

print renrenBrower("http://www.renren.com/home","用户名","密码")

这样就可以将自己首页的信息显示出来了,其实在登录完以后,还可以接着写脚本来获取自己想要的信息,如朋友的新鲜事等,这里就不作过多说明了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch中unsqueeze()函数理解

unsqueeze()函数起升维的作用,参数表示在哪个地方加一个维度。 在第一个维度(中括号)的每个元素加中括号 0表示在张量最外层加一个中括号变成第一维。 直接看例子: import torch inputtorch.arange(0,6) print(input) print(input.shape) 结果: tensor([0, 1, 2, 3…

Linux 命令之 ifconfig -- 配置和显示网卡的网络参数

文章目录一、命令介绍二、常用选项三、参考示例(一)显示网络设备信息(激活状态的)(二)启动关闭指定网卡(三)显示所有配置的网络接口,不论其是否激活(四&#…

版本交付_连续交付友好的Maven版本

版本交付持续交付管道需要可预测的软件和依赖版本。 Maven软件项目中常见的快照版本与“持续交付”背后的动机背道而驰。 为了将快照版本更新为发行版本,开发人员通常手动或通过诸如maven-release-plugin来编辑pom.xml文件。 但是,Maven还提供了将版本号…

shell开启飞行模式_今天才知道,原来手机的飞行模式用处那么多,看完涨知识了...

想必大家都知道,手机里有个飞行模式,是在乘坐飞机时使用的。其实除了这个功能之外,飞行模式还有很多其他的妙用,下面笔者就为大家一一进行介绍。一、 加快充电速度有些特殊情况你想加快手机的充电速度时,可以试着开启飞…

Anaconda安装库

有时候pip安装库特别慢,就采用conda别的方法装 conda install -c conda-forge 库名#如pydicom,gdcm

Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包

文章目录一、SRPM 介绍二、SRPM 命名格式三、SRPM 的安装(一)直接使用命令 rpmbuild(二)利用 *.spec 文件编译(三)使用命令 make 编译和安装四、写在最后一、SRPM 介绍 SRPM 包,比 RPM 包多了一…

payara 创建 集群_在Payara Server和GlassFish中配置密码

payara 创建 集群回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈。 我在这里回答的问题之一是如何在docker容器中更改Payara Server主密码 。 显然,在标准服务器安装中,这很简单–只需使用asadmin change-master…

axure怎么做5秒倒计时_五个月宝宝早教,5个月婴儿早教怎么做

五个月宝宝早教,5个月婴儿早教怎么做,5个月宝宝是需要开始有意识的进行精细动作的家庭训练了5个月宝宝的一般特点:到了5个月时,能用眼睛观察周围的物体了,而且对什么都感到新奇好玩,能在眼睛的支配下抓住东…

python中enumerate()的理解

enumerate()函数的作用是通过迭代来遍历一个字符串、列表或字典等,并且为其增加索引,返回值为enumerate类。 代码举例如下: list[1,2,3,4,5,6] for i,j in enumerate(list):print(i,j) #结果: 0 1 1 2 2 3 3 4 4 5 5 6namesaber…

jpa执行sql脚本_JPA persistence.xml SQL脚本定义

jpa执行sql脚本您可以在将在运行时执行的JPA持久性上下文定义中定义并链接到SQL脚本。 有标准化的属性来定义脚本&#xff0c;以分别说明如何创建模式&#xff0c;批量加载数据和删除模式&#xff1a; <persistence version"2.1" xmlns"http://xmlns.jcp.or…

RPM 软件包默认的安装路径

通常情况下&#xff0c;RPM 包采用系统默认的安装路径&#xff0c;所有安装文件会按照类别分散安装到表 1 所示的目录中。 表 1 RPM 包默认安装路径安装路径含义/etc/配置文件安装目录/usr/bin/可执行的命令文件安装目录/usr/lib/程序所使用的函数库保存位置/usr/share/doc/基本…

图像融合亮度一致_重磅干货低光图像处理方案

点击上方“AIWalker”&#xff0c;选择加“星标”或“置顶” 重磅干货&#xff0c;第一时间送达Tips&#xff1a;一点点提示&#xff0c;因内容较多建议先关注&#xff0c;再置顶&#xff0c;最后端杯茶来精心浏览。背景低光图像是夜晚拍照时极为常见的一种现象。不充分的光…

修改本地文件的名字

将名字叫做megumi的文本文件改成名字叫做asuna的文本文件。主要用到os库的rename方法。 代码如下: import os folder"C:/Users/13451/Desktop" oldos.path.join(folder,megumi.txt) #或者oldfolder/megumi.txt newos.path.join(folder,asuna.txt) os.rename(old,n…

Adobe PhotoShop(PS) for Mac 如何隐藏切片框?

如何取消显示如下图所示的切片框&#xff1a; 打开『视图』➟ 『显示』&#xff0c;把『切片』前面的勾去掉&#xff0c;如下图所示&#xff1a;

groovy grails_在Grails战争中添加一个“精简”的Groovy Web控制台

groovy grails假设您已将Grails应用程序部署到服务器上–如何查找应用程序的配置方式&#xff1f; 如果您有来源&#xff0c;则可以查看Config.groovy &#xff0c; BuildConfig.groovy等&#xff08;在这种情况下&#xff0c;我正在谈论Grails 2应用程序&#xff0c;但是这些想…

邮宝打印面单尺寸调整_如何打印身份证的实际尺寸?怎样用照片打印身份证复印件...

点击上面 蓝色 文字关注我们&#xff0c;了解选购百科知识&#xff0c;快乐健康不停&#xff01;怎样打印身份证复印件&#xff1f;可以把身份证的照片导入电脑或者扫描件打印黑白的即可。如何打印身份证的实际尺寸&#xff1f;二代身份证的实际尺寸是&#xff1a;85.6MM X 54M…

将一个文件夹的文件复制到另一个文件夹

将桌面的文件复制到F盘anime文件夹下&#xff0c;主要用到shutil库下的copy方法。 from shutil import copy import os from_pathC:/Users/13451/Desktop/asuna.txt #asuna.txt是文件 to_pathF:/anime #anime是个文件夹 copy(from_path, to_path)

取模和求余运算

文章目录背景探究总结被除数 dividend 用 a 表示&#xff1b; 除数 divisor 用 b 表示&#xff1b; 商 quotient 用 q 表示&#xff1b; 余 remainder 用 rem 表示&#xff1b; 模 modulo 用 mod 表示。 背景 最近在一道 Java 习题中&#xff0c;看到这样的一道题&#xff1a;…

jpa映射json_如何使用JPA和Hibernate映射JSON集合

jpa映射json介绍 开源的hibernate-types项目允许您将Java对象或Jackson JsonNode为JPA实体属性。 最近&#xff0c;由于我们的杰出贡献者&#xff0c;我们添加了对类型安全集合的支持&#xff0c;该集合也可以作为JSON持久化。 在本文中&#xff0c;您将了解如何实现此目标。 …

图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

编者按&#xff1a;今年Jol Greffier博士等在European Radiology (IF 4.1)上发表了题为《Image quality and dose reduction opportunity of deep learning image reconstruction algorithm for CT: a phantom study》的文章&#xff0c;通过与混合迭代重建算法(IR)对比&#x…