Python中requests.get用法示例

requests get在php中是接受數據了在python中同樣也是接受數據,那麽requests get如何使用呢,下面一起來看看requests get用法例子。


例子。

@@ -0,0 +1,22 @@
+__author__ = 'tanteng'
+
+import requests
+
+def testrequests():
+
+ url = 'http://www.x.com/index/pyrequests'
+
+ params = {
+ 'x':'xxxx',
+ 'y':'yyyy'
+ }
+
+ re = requests.get(url,params)
+
+ return re
+
+
+if __name__ == '__main__':
+ re = testrequests()
+ print(re.text)
+

簡單的例子:

想象下我們試圖使用get方法從http://example.test/獲取資源並且查看返回代碼,content-type頭信息,還有response的主體內容。這件事無論使用urllib2 或者Requests都是很容易實現的。

urllib2

>>> import urllib2
>>> url = 'http://example.test/'
>>> response = urllib2.urlopen(url)
>>> response.getcode()
200
>>> response.headers.getheader('content-type')
'text/html; charset=utf-8'
>>> response.read()
'Hello, world!'

Requests

>>> import requests
>>> url = 'http://example.test/'
>>> response = requests.get(url)
>>> response.status_code
200
>>> response.headers['content-type']
'text/html; charset=utf-8'
>>> response.content
u'Hello, world!'

這兩種方法很相似,相對于urllib2調用方法讀取response中的屬性信息,Requests則是使用屬性名來獲取對應的屬性值。
兩者還有兩個細微但是很重要的差別:

1 Requests 自動的把返回信息有Unicode解碼
2 Requests 自動保存了返回內容,所以你可以讀取多次,而不像urllib2.urlopen()那樣返回的只是一個類似文件類型只能讀取一次的對象。

第二點是在python交互式環境下操作代碼很令人討厭的事情


發送帶參數的get請求,將key與value放入一個字典中,通過params參數來傳遞,其作用相當于urllib.urlencode

>>> import requests
>>> pqyload = {'q':'楊彥星'}
>>> r = requests.get('http://www.so.com/s',params = pqyload)
>>> r.url
u'http://www.so.com/s?q=%E6%9D%A8%E5%BD%A6%E6%98%9F'


發送post請求,通過data參數來傳遞,

>>> payload = {'a':'楊','b':'hello'}
>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print r.text
{
"args": {},
"data": "",
"files": {},
"form": {
"a": "u6768",
"b": "hello"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "19",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.3.0 CPython/2.6.6 Windows/7",
"X-Request-Id": "c81cb937-04b8-4a2d-ba32-04b5c0b3ba98"
},
"json": null,
"origin": "124.192.129.84",
"url": "http://httpbin.org/post"
}
>>>

可以看到,post參數已經傳到了form裏,data不光可以接受字典類型的數據,還可以接受json等格式

>>> payload = {'a':'楊','b':'hello'}
>>> import json
>>> r = requests.post('http://httpbin.org/post', data=json.dumps(payload))

五、發送文件的post類型,這個相當于向網站上傳一張圖片,文檔等操作,這時要使用files參數


>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('touxiang.png', 'rb')}
>>> r = requests.post(url, files=files)

5.1 定制headers,使用headers參數來傳遞

>>> import json

>>> url = 'https://api.github.com/some/endpoint'

>>> payload = {'some': 'data'}

>>> headers = {'content-type': 'application/json'}


>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

更多相關文章
  • 本文章來介紹在python中兩個隨機函數的用法與區別與相同之處,有需要的學習的朋友可參考.range函數說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列.range示例: 代碼如下 >>> ran ...
  • Pexpect 是一個用來啓動子程序並對其進行自動控制的 Python 模塊了,下文我們就一起來看一個python中pexpect模塊封裝ssh示例,希望例子能幫助到大家.很多時候需要批量在一批主機上執行某個操作時,
  • raw_input和input兩個函數是python中常用的函數了,但是我用到最多的是input函數了這個不有置疑了,但raw_input函數有與input函數在用法上有什麽區別呢?下面我們一起來看看吧.在使用pyt
  • 本文章詳細的介紹了關于在Python中print/format字符串格式化用法,有需要的同學可參考一下關于format, print的詳細教程.Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(變
  • 本文章來告訴你關于python中range與xrange的區別,有對此兩個函數有不理解的朋友可以參考本教程來幫你解惑哦.range 函數說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列.range示例: 代碼如下
  • if ELSE其實是一個獨立的語句了我們可以用來判斷一些簡單的邏輯了,但把if ELSE與for結合使用各位有沒有了解過呢,下面來看看if ELSE的用法.if 語句是用來檢查一個條件:如果條件爲真(true),我們運行一個語句塊(你爲if塊),否則(else),我們執行另一個語句塊(稱爲else塊 ...
  • MySQLdb其實有點像php或asp中連接數據庫的一個模式了,只是MySQLdb是針對mysql連接了接口了,我們可以在python中連接MySQLdb來實現數據的各種操作了,下面一起來看看吧.python連接mysql 的方案有oursql.PyMySQL. myconnpy.MySQL Con
  • python中struct是初次接觸到的一個函數了,使用也不多下面我整理了向個站長分享關于python中struct用法的例子,整理一下有興趣的朋友不防參考一下.struct.pack():我的理解是,python利用 struct模塊將字符(比如說 int,long ,unsized int 等) ...
一周排行