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 13 Python
Python中的ceil()方法使用教程
May 14 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
python中的for循环
Sep 28 Python
在python中使用with打开多个文件的方法
Jan 07 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 Python
Python列表操作方法详解
Feb 09 Python
Python 实现微信自动回复的方法
Sep 11 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
python pyhs2 的安装操作
Apr 07 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
使用PHPExcel导出Excel表
2018/09/08 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python中endswith()函数的基本使用
2015/04/07 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
tensorflow更改变量的值实例
2018/07/30 Python
python匿名函数的使用方法解析
2019/10/10 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
PyQt实现计数器的方法示例
2021/01/18 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
考生诚信考试承诺书
2014/05/23 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
微观世界观后感
2015/06/10 职场文书
大学迎新生欢迎词
2015/09/29 职场文书