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冒泡排序算法的实现代码
Nov 21 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
解决Python中回文数和质数的问题
Nov 24 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
python 对象真假值的实例(哪些视为False)
Dec 11 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
jQuery 表格工具集
2010/04/25 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
Flask解决跨域的问题示例代码
2018/02/12 Python
Python之文字转图片方法
2018/05/10 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
python神经网络编程之手写数字识别
2021/05/08 Python
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
Python开发简易五子棋小游戏
2022/05/02 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python