cookielib模块基础学习
# -*- coding: utf-8 -*-
# python:2.x
__author__ = 'Administrator'
import cookielib
#主要用于处理http客户端的cookie
#cookielib.loadError在一个异常文件中失败加载,是IOEerror的子类
#cookielib.CookieJar用于存储cookie对象,此模块捕获cookie并在后续连接请教时重新发送,还可以用来处理包含cookie数据文件
#文档:https://docs.python.org/2/library/cookielib.html?highlight=cookielib#cookielib
"""
模块主要提供了这几个对象,CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar。
CookieJar对象存储在内存中。
FileCookieJar一个对象实现吗CookiePolicy接口
MozillaCookieJar以加载和保存cookie的磁盘 Mozillacookies.txt使用的文件格式
LWPCookieJar可以加载和保存cookie到磁盘格式 兼容libwww-perl图书馆的Set-Cookie3文件格式
"""
import urllib2,urllib
cj=cookielib.CookieJar()
openner=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r=openner.open('http://www.baidu.com')
print dir(r)
#例子:python 模拟获取获取osc openapi authorization_code:(网友提供)http://www.oschina.net/code/snippet_1244912_38304
class MyWeb():
def __init__(self):
self.header={ "User-Agent" : "Opera/8.0 (Macintosh; PPC Mac OS X; U; en)",
"Referer": "https://www.oschina.net/action/oauth2/authorize? \
response_type=code&client_id=LEW1z8ylZNHyiT7sB1kZ& \
redirect_uri=http://www.oschina.net/"}
self.cookie=cookielib.LWPCookieJar()#可以加载和保存cookie到磁盘格式 兼容libwww-perl图书馆的Set-Cookie3文件格式
self.cookie_support=urllib2.HTTPCookieProcessor(self.cookie)#处理HTTP cookie
self.opener=urllib2.build_opener(self.cookie_support,urllib2.HTTPHandler)#生成一个opener,并通过该opener来访问URL;HTTPHandler:处理HTTP url
urllib2.install_opener(self.opener)#用urllib2.install_opener(opener)把一些需要全局应用的opener加入urllib2中
def post(self,posturl,dictdata):
'''
pass two arguement, posturl and postdict
return urllib2.urlopen(request)
'''
posdata=urllib.urlencode(dictdata)
request=urllib2.Request(posturl,posdata,self.header)#Request 中加入特定的 Headerurllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable])
try:
content=urllib2.urlopen(request)
except Exception,e:
print str(e)
print type(content)
return content
if __name__=='__main__':
import hashlib
web=MyWeb()
password=''
email=''
password=hashlib.sha1(password).hexdigest()
dictdata={
'email':email,
'pwd':password
}
url = "https://www.oschina.net/action/user/hash_login"
urlAuth = "https://www.oschina.net/action/oauth2/authorize"
dictdata2={
'client_id': 'LEW1z8ylZNHyiT7sB1kZ', # 申请的client_id
'response_type': 'code',
'redirect_uri': 'http://www.oschina.net/',
'scope': 'blog_api,comment_api,favorite_api,message_api, \
news_api,notice_api,post_api,search_api, \
tweet_api,user_api,user_mod_api,',
'state': '',
'user_oauth_approval': 'true',
'email': email,
'pwd': password
}
web.post(url,dictdata)
tmp=web.post(urlAuth,dictdata2)
print tmp.url
cookielib模块基础学习的更多相关文章
- Python入门基础学习(时间模块,随机模块)
Python基础学习笔记(六) time模块: 时间的三种表示方法: 1.格式化字符串 2.时间戳 用来表示和1970年的时间间隔,单位为s 3.元组 struct_time 9个元素 time的st ...
- Python入门基础学习(模块,包)
Python基础学习笔记(五) 模块的概念:模块是python程序架构的一个核心概念 每个以拓展名py结尾的python源代码文件都是一个模块 模块名同样也是一个标识符,需要符合标识符的命名规则 在模 ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
随机推荐
- spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧!
spring Scurity终于测试OK了,复杂的功能还待深入研究!发布出来一起探讨吧! 就是因 为研究它,我的个天啦!头都大了一圈!还待修改完整版!我的目标不是每个项目拿到它就能使用!到时再说啦.. ...
- Hadoop Failed to set permissions of path
在Eclipse里面写了个測试程序:把HDFS中的数据批量导入到HBase中 写好后,在本地測试遇到了例如以下问题: 14/04/21 16:49:53 WARN util.NativeCodeLoa ...
- public,private,protected的区别
一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...
- UITableView的简单总结与回顾
今天突发奇想的想对UItableView做一下汇总,感觉在编程中这个控件可以千变万化也是用的最多的一个了,下面就为大家简单总结下这个控件,也许还有不足,不过还是请各位不吝赐教了哈,那么我就开始了,我会 ...
- Asp.net原理(第一篇)
Asp.net (第一篇) 当用户在浏览器输入一个URL地址后,浏览器会发送一个请求到服务器.这时候在服务器上第一个负责处理请求的是IIS.然后IIS再根据请求的URL扩展名将请求分发给不同的ISAP ...
- VS2013以管理员身份使用
Win8系统: 1.将C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe改为以管理员身份运行. 2.将 ...
- No1_6.字符串的基本操作2_Java学习笔记
import java.util.Scanner; import java.util.regex.Pattern; public class HelloString2 { public static ...
- seajs模块压缩问题
在优化整理项目代码时,想使用seajs来把代码模块化.看了下官方5分钟上手教程,觉得很不错,也没多想就一直开发下去了,也没出什么问题.等一同事说把代码打包个放到设备上去测试一下,发现怎么也跑不起来,郁 ...
- 【android】java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlStrin ...
- ViewDragHelper的使用
一.ViewDragHelper的原理 是一个能够自用移动ViewGroup内部View的控件. 通过获取ViewGroup的点击事件,之后通过Scroller滑动来进行对ViewGroup内部控件的 ...