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

 更新时间:2014年11月10日 09:08:34   投稿:shichen2014   我要评论
这篇文章主要介绍了Python模仿POST提交HTTP数据及使用Cookie值的方法,通过两种不同的实现方法较为详细的讲述了HTTP数据通信及cookie的具体用法,需要的朋友可以参考下

本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:

方法一

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

复制代码 代码如下:
import urllib2, urllib
data = {'name' : 'www', 'password' : '123456'}
f = urllib2.urlopen(
        url     = '//www.jb51.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()

希望本文所述对大家的Python程序设计有所帮助。

相关文章

  • 基于Python实现通过微信搜索功能查看谁把你删除了

    基于Python实现通过微信搜索功能查看谁把你删除了

    这篇文章主要介绍了基于Python实现微信搜索查看谁把你删除了的相关资料,需要的朋友可以参考下
    2016-01-01
  • Python中pip安装非PyPI官网第三方库的方法

    Python中pip安装非PyPI官网第三方库的方法

    这篇文章主要介绍了Python中pip安装非PyPI官网第三方库的方法,pip最新的版本(1.5以上的版本), 出于安全的考 虑,pip不允许安装非PyPI的URL,本文就给出两种解决方法,需要的朋友可以参考下
    2015-06-06
  • python GUI图形化编程wxpython的使用

    python GUI图形化编程wxpython的使用

    这篇文章主要介绍了python GUI图形化编程wxpython的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Pyramid添加Middleware的方法实例

    Pyramid添加Middleware的方法实例

    在pylons的文档中,有专门讲过如何添加自己的Middleware, 通过这些Middleware, 我们可以改变输入和输出。这也是WSGI(Web Server Gateway Interface)的优势和精髓所在,那么在pyramid中,我们如何添加Middleware呢
    2013-11-11
  • 一个月入门Python爬虫学习,轻松爬取大规模数据

    一个月入门Python爬虫学习,轻松爬取大规模数据

    利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息,这篇文章给大家带来了一个月入门Python学习,爬虫轻松爬取大规模数据,感兴趣的朋友一起看看吧
    2018-01-01
  • Python 进程操作之进程间通过队列共享数据,队列Queue简单示例

    Python 进程操作之进程间通过队列共享数据,队列Queue简单示例

    这篇文章主要介绍了Python 进程操作之进程间通过队列共享数据,队列Queue,结合实例形式分析了Python进程数据共享、队列数据处理相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • django url到views参数传递的实例

    django url到views参数传递的实例

    今天小编就为大家分享一篇django url到views参数传递的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python中文分词库jieba,pkusegwg性能准确度比较

    Python中文分词库jieba,pkusegwg性能准确度比较

    这篇文章主要介绍了Python中文分词库jieba,pkusegwg性能准确度比较,需要的朋友可以参考下
    2020-02-02
  • Sublime开发python程序的示例代码

    Sublime开发python程序的示例代码

    本篇文章主要介绍了Sublime开发python程序的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 深入理解Python异常处理的哲学

    深入理解Python异常处理的哲学

    这篇文章主要给大家介绍了关于Python异常处理的哲学,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02

最新评论