Python模仿POST提交HTTP数据及使用Cookie值的方法


Posted in Python onNovember 10, 2014

本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:

方法一

如果不使用Cookie, 发送HTTP POST非常简单:

import urllib2, urllib

data = {'name' : 'www', 'password' : '123456'}

f = urllib2.urlopen(

        url     = 'https://3water.com/',

        data    = urllib.urlencode(data)

  )

print f.read()

当使用Cookie时, 代码变得有些复杂:
import urllib2

cookies = urllib2.HTTPCookieProcessor()

opener = urllib2.build_opener(cookies)

f = opener.open('http://www.xxxx.net/?act=login&name=user01')

data = '<root>Hello</root>'

request = urllib2.Request(

        url     = 'http://www.xxxx.net/?act=send',

        headers = {'Content-Type' : 'text/xml'},

        data    = data)

opener.open(request)

第一次 open() 是进行登录. 服务器返回的 Cookie 被自动保存在 cookies 中, 被用在后来的请求.

第二次 open() 用 POST 方法向服务器发送了 Content-Type=text/xml 的数据. 如果你不创建一个 Request, 而是直接使用 urlopen() 方法, Python 强制把 Content-Type 改为 application/x-www-form-urlencoded.

方法二

用urllib2库,带Cookie请求URL页面

例1:

import urllib2

opener = urllib2.build_opener()

opener.addheaders.append(('Cookie', 'cookiename=cookievalue'))

f = opener.open("http://example.com/")

例2:
import urllib2

import urllib

from cookielib import CookieJar

 

cj = CookieJar()

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

# input-type values from the html form

formdata = { "username" : username, "password": password, "form-id" : "1234" }

data_encoded = urllib.urlencode(formdata)

response = opener.open("https://page.com/login.php", data_encoded)

content = response.read()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
深入探究Python中变量的拷贝和作用域问题
May 05 Python
python实现媒体播放器功能
Feb 11 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Python操作mongodb的9个步骤
Jun 04 Python
Python反射和内置方法重写操作详解
Aug 27 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
Python使用while循环花式打印乘法表
Jan 28 Python
详解django中url路由配置及渲染方式
Feb 25 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
Python类的多重继承问题深入分析
Nov 09 #Python
python查询mysql中文乱码问题
Nov 09 #Python
python刷投票的脚本实现代码
Nov 08 #Python
Django静态资源URL STATIC_ROOT的配置方法
Nov 08 #Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 #Python
Python使用百度API上传文件到百度网盘代码分享
Nov 08 #Python
python中readline判断文件读取结束的方法
Nov 08 #Python
You might like
SSI指令
2006/11/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
轮播的简单实现方法
2016/07/28 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python数据结构树和二叉树简介
2014/04/29 Python
python中的随机函数小结
2018/01/27 Python
python多线程之事件Event的使用详解
2018/04/27 Python
python3的输入方式及多组输入方法
2018/10/17 Python
pandas-resample按时间聚合实例
2019/12/27 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
毕业生求职推荐信
2013/11/04 职场文书
全神贯注教学反思
2014/02/03 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
环保建议书600字
2014/05/14 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
思想工作总结范文
2015/08/12 职场文书
Jsonp劫持学习
2021/04/01 PHP