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 生成目录树及显示文件大小的代码
Jul 23 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
对Python w和w+权限的区别详解
Jan 23 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
python matplotlib库的基本使用
Sep 23 Python
Python爬虫之Selenium实现窗口截图
Dec 04 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
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP在线书签系统分享
2016/01/04 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
用ADODB.Stream转换
2007/01/22 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python OS模块常用函数说明
2015/05/23 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python列表生成器迭代器实例解析
2019/12/19 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
语文教育专业推荐信范文
2013/11/25 职场文书
安全标准化汇报材料
2014/02/03 职场文书
社团活动总结模板
2014/06/30 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
罚站检讨书
2015/01/29 职场文书
行政文员岗位职责
2015/02/04 职场文书
公务员个人总结
2015/02/12 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript