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的PEAK来适配协议的教程
Apr 14 Python
详解python的数字类型变量与其方法
Nov 20 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
Python三级菜单的实例
Sep 13 Python
浅谈python新式类和旧式类区别
Apr 26 Python
用python打印1~20的整数实例讲解
Jul 01 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Python进行统计建模
Aug 10 Python
python基于opencv实现人脸识别
Jan 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-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
小程序实现搜索框
2020/06/19 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python中的字符串替换操作示例
2016/06/27 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python中判断文件结束符的具体方法
2020/08/04 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
优秀毕业生求职信范文
2014/01/02 职场文书
自我鉴定书面格式
2014/01/13 职场文书
社区国庆节活动方案
2014/02/05 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
个人违纪检讨书
2014/09/15 职场文书
责任书格式
2015/01/29 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
关于远足的感想
2015/08/10 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android