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 等) ...
一周排行
  • 三星平板N5100網路類型是怎麽樣的,能否實現3G
    三星平板N5100網路類型是怎麽樣的,能否實現3G?上次購買蘋果ipad時就有一個選擇是否 ...
  • 本文章爲各位介紹jquery封裝audio5js實現語音播放器的例子,希望這個例子能夠讓各位了解audio5js的使用方法.首先先簡單介紹一下Audio5js吧.Audio5js是一個能夠幫助你解決類似這樣的浏覽器兼
  • 對于很多開源或英文的配置文件許多的站長還是看到懂了,這裏小編整理了一篇zabbix_server.conf配置文件詳解,希望對各位有幫助.在TTLSA學習zabbix的同學們,來看看zabbix server配置文件 ...
  • CentOS 6.4配置Apache+PHP5+MySQL環境
    centos是linux下的一款系統了,下面我來介紹在CentOS 6.4配置Apache ...
  • wp_head函數對于要使用插件的主題來說比較重要,一般如果插件需要向主題頭部header標簽內加入css文件和js文件,都是通過wp_head()函數輸出的.在header.php文件的header標簽結束標簽&l ...
  • 編碼轉換一直是一個比較頭痛的問題我們通常會因一些編碼問題導致頁面亂碼了,下文小編整理了一個unicode編碼轉爲utf-8編碼的例子,大家一起來看看.在前端開發中,爲了讓中文在不同的環境下都能很好的顯示,一般是將中文
  • Debian是linux內核環境了,但使用的用戶是比較少的,下面我們來看看Debian編譯安裝Nginx+MySQL+PHP-FPM環境詳解,希望文章能夠對各位有幫助.Linux環境:Debian 6 Stable程 ...
  • 自己有一個網站,尋找一個CPS聯盟,學會添加代碼,三個步驟就可以搞定CPS聯盟的操作問題.那麽該怎麽仔細地去做CPS網賺聯盟? 一.CPS聯盟案例—拍拍CPS聯盟很多人玩過了解過了淘寶CPS聯盟,就會考慮京東.騰訊拍
  • iPad mini retin怎麽關閉後台程序
    本文章來給大家介紹iPad mini retin怎麽關閉後台程序吧,iPad mini r
  • 關于OpenVPN和L2TP整合freeradius驗證的帖子都已經寫出來了,今天公司VPN增添兩台PPTP的伺服器,這個帖子就貼出配置過程以便以後備用,希望全文章對各位朋友也會有幫助.本帖的配置環境爲CentOS5