1. 程式人生 > >Python3.x:requests的用法

Python3.x:requests的用法

ring latest charset div 狀態碼 mage ati ext stringio

Python3.x:requests的用法

1,requests 比 urllib.request 容錯能力更強;

2,通常用法:

(1).認證、狀態碼、header、編碼、json

r = requests.get(https://api.github.com/user, auth=(user, pass))
r.status_code

r.headers[content-type]
輸出:application/json; charset=utf8
r.encoding
輸出:utf-8
r.text
輸出:u{"type":"User"...
r.json()
輸出:{u
private_gists: 419, utotal_private_repos: 77, ...}

(2).發起請求

import requests
URL="http://www.bsdmap.com/"
#
r = requests.get(URL)
#
r = requests.post(URL)
#
r = requests.put(URL)
#
r = requests.delete(URL)
#
r = requests.head(URL)
#
r = requests.options(URL)

(3).通過URL傳遞參數

payload = {key1: value1
, key2: value2} r = requests.get("http://httpbin.org/get", params=payload) print r.url 輸出:uhttp://httpbin.org/get?key2=value2&key1=value1

(4).返回內容

import requests
r = requests.get(https://github.com/timeline.json)
r.text
輸出:[{"repository":{"open_issues":0,"url":"https://github.com/...
r.encoding
輸出:
utf-8 r.encoding = ISO-8859-1

(5).二進制內容

r.content
輸出:b[{"repository":{"open_issues":0,"url":"https://github.com/...

from PIL import Image
from StringIO import StringIO
i = Image.open(StringIO(r.content))

(6).JSON

import requests
r = requests.get(https://github.com/timeline.json)
r.json()
輸出:[{urepository: {uopen_issues: 0, uurl: https://github.com/...

(7).超時

requests.get(http://github.com, timeout=0.001)

(8).自定義header

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)

官方文檔:http://docs.python-requests.org/en/latest/user/quickstart/

Python3.x:requests的用法