Python模仿POST提交HTTP数据以及使用Cookie值

方法一

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

 代码如下 复制代码

import urllib2, urllib

data = {'name' : 'www', 'password' : '123456'}
f = urllib2.urlopen(
        url     = 'http://www.111cn.net/',
        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()
时间: 2024-11-01 16:44:49

Python模仿POST提交HTTP数据以及使用Cookie值的相关文章

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

本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考.具体实现方法如下: 方法一 如果不使用Cookie, 发送HTTP POST非常简单: 复制代码 代码如下: import urllib2, urllib data = {'name' : 'www', 'password' : '123456'} f = urllib2.urlopen(         url     = 'http://www.jb51.net/',      

python通过post提交数据的方法

  这篇文章主要介绍了python通过post提交数据的方法,涉及Python使用post方式传递数据的相关技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # -*- coding: cp936 -*- import urllib2 import urllib def postHttp(name=None,tel=None,address=None, price=None,num=None,paytype=None, posttype

python使用post提交数据到远程url的方法

  这篇文章主要介绍了python使用post提交数据到远程url的方法,涉及Python使用post传递数据的相关技巧,需要的朋友可以参考下 本文实例讲述了python使用post提交数据到远程url的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 import sys, urllib2, urllib zipcode = "S2S 1R8" url = 'http://www.yoursiteweb.com/getForecast' da

django-python Django表单提交好数据,发给另一个页面的问题,停留在本页面没有发送过去

问题描述 python Django表单提交好数据,发给另一个页面的问题,停留在本页面没有发送过去 def contact_author(request): if request.method == 'POST':#提交请求时才会访问这一段,首次访问页面时不会执行 form = ContactForm(request.POST) if form.is_valid():#说明各个字段的输入值都符合要求 cd = form.cleaned_data#只有各个字段都符合要求时才有对应的cleaned_

android post方式提交中文数据到服务器乱码问题

问题描述 android post方式提交中文数据到服务器乱码问题 Android端代码 AsyncHttpClient client = new AsyncHttpClient(); //URLEncoder.encode(categoryutf-8""); RequestParams params = new RequestParams(); if(path1!=null){ file1=new File(path1); } if(path2!=null){ file2=new F

把HTML表单提交的数据转化成XML文件

通常,在asp中进行的form表单提交的数据都被写进数据库管理系统中去,如果你想要你的数据是方便携带的数据,你可以把它写进一个XML文件中去.这种方法是跨平台的,因此你所收集的信息不需要进行转换.为了实现上面的想法,你必须先利用Microsoft XMLDOM建立一个XML文件,Microsoft XMLDOM对象有一个扩展对象库,它可以创建组成XML文件所需要的元素.属性.属性值.    当XMLDOM对象实例化以后,必须对各个元素进行引用来建立XML的结构,下面的例子就是先建立根元素,并把她

python使用urllib2提交http post请求的方法

  本文实例讲述了python使用urllib2提交http post请求的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2.Request(url) data = urllib.urlencode(data) #enab

Python的Tornado框架实现数据可视化的教程

  这篇文章主要介绍了举例讲解Python的Tornado框架实现数据可视化的教程,Tornado是一个异步的高人气开发框架,需要的朋友可以参考下 所用拓展模块 xlrd: Python语言中,读取Excel的扩展工具.可以实现指定表单.指定单元格的读取. 使用前须安装. 下载地址:https://pypi.python.org/pypi/xlrd 解压后cd到解压目录,执行 python setup.py install 即可 datetime: Python内置用于操作日期时间的模块 拟实现

表单提交和数据接收,要怎么做啊

问题描述 表单提交和数据接收,要怎么做啊 如图样式的表单,怎样获取提交内容? 当点击"提交"时,数据怎样提交到后台? 偶是小白,请各位大大详细说明.谢谢.谢谢 代码: 解决方案 对方读取参数就行了,参数名字就是你元素的id 解决方案二: WinLog.aspx读取参数,aa = request["fff"]; 解决方案三: 二楼说得对 或者使用一个servlet 进行数据处理