Python模仿POST提交HTTP數據以及使用Cookie值

本文章介紹在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()
更多相關文章
  • python獲取A股數據列表的例子
    現在我相信各位對于中國的股票是又愛又恨吧,我們今天來做一個小小的測試就是利用python來
  • 本文章來給大家介紹一個利用PHP CURL模擬POST提交XML數據,因爲接受方只接受xml數據所以我就寫了一個,下面分享給各位朋友,有需要的朋友可參考. 代碼如下 $url = "http://www.111cn.net/ login"; <!--?xml version ...
  • 今天有朋友問我爲什麽PHPMyAdmin不能設置MySQL數據表auto increment值呢,後來我查看了原因他是使用了PHPMyadmin 4.0.2而它存在了一個bug無法在操作界面設置自動增量ID值了.解決辦法,換一個其它版本的phpmyadmin即可,升級到PHPMyAdmin 4.0.
  • Mssql insert數據提示:不能將值 NULL 插入列 'id'問題
    由于我們在創建mssql中的id值時,未讓id設爲自動增加id了,這樣我們如果不帶id值就
  • Python是可以操作數據庫了,我們下面一起來看一篇Python 調取MYSQL數據並插入到CSV文件,希望文章能夠幫助到各位.如何利用python腳本將遠程數據庫查詢值,並將該值按照csv中"column A"對應
  • python如何thrift框架操作hbase數據庫及shell操作
    HBase 是一個高可靠性.高效能.面向列.可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群.本文我們來看看python利用thrift操作hbase數據和shell操作 .以前都是用mongodb的,但是量大了,mongodb顯得不那麽靠譜,改成hb ...
  • 在向數據庫保存大批量數據時,爲提高效能,一般使用批量插入的方式提交數據,而不是每條數據都執行一次insert操作.下邊是一個使用JDBC 方式向Oracle數據庫批量插入數據的例子:例子 代碼如下 String sq
  • 使用Apache HBase處理海量數據深入學習
    近些年來,NoSQL發展趨勢越發高漲,是因爲web2.0的興起,傳統的關系型數據庫(sql)已經對大規模高並發顯得力不從心,在處理漲量數據問題,NoSQL更能勝任過去的幾年中,在多種方式的數據存儲和查詢上,我們都看到了真正意義上的爆炸式發展.其中被稱爲NoSQL的數據庫站在了改革的前沿,正在形成新的
一周排行