python3學習 requests使用

2022-06-26 21:42:13 字數 3107 閱讀 6621

前面我們講過了urllib模組,知道他是用於網路請求的,這一節講的requests還是用於網路請求的,只不過urllib是官方模組,而requests是第三方的模組。用過的人都說他才是』人類使用的』,哈哈,我也沒覺得urllib有多麼尿性啊!下面我們試著回歸人類的生活吧。

這是第三方的模組,所以需要手動安裝,安裝過程在此不表,請度娘查之。

1.首先我們匯入模組:

import requests
2.請求url:

get請求:

r = requests.get('')
帶引數的get請求:

params = 

r = requests.get('',params=params)

print(r.url)

?k1=1&k2=v2

post請求:

r = requests.post('',data=)

上面傳遞的引數是字典,我們也可以傳遞json型別的引數:

import requests

import json

params =

url = ''

requests.post(url,json.dump(params))

因為傳送json格式太常見,requests模組已經為我們整合了json格式的資料,而不用我們引入json模組:

import requests

params =

url = ''

requests.post(url,json=params)

下面還有更厲害的,如果我們想post乙個檔案怎麼辦呢,哈哈requests一樣可以做到的:

import requests

url = ''

requests.post(url,files=file)

如果你傳送乙個非常大的檔案作為 multipart/form-data 請求,你可能希望將請求做成資料流。預設下 requests 不支援, 但有個第三方包 requests-toolbelt 是支援的。

import requests

from requests_toolbelt.multipart.encoder import multipartencoder

m = multipartencoder(

fields=

)r = requests.post('', data=m,

headers=)

3.獲取響應資訊

import requests

url = ''

resp = requests.post(url)

print(resp.text)

#如果這裡你列印text是亂碼那就是字元編碼的問題啦

#你可以手動設定編碼格式:

resp.encoding = 'utf-8'

print('--------------------------------')

print(resp.content)

print('--------------------------------')

print(resp.headers)

print('--------------------------------')

print(resp.url)

text會以帶格式的文字顯示請求位址的網頁原始碼,content響應的是二進位制響應體。headers顯示請求頭資訊,url顯示該次請求的url。當然還有很多方法,在此不一一細說,感興趣大家下去過一遍。

4.對壓縮格式的相應內容自動解壓縮

對於gzip和deflate格式的響應資料requests會自動解碼。

我們還是以豆瓣網為例,豆瓣的返回格式是gzip的,如果使用urllib的話需要我們手動呼叫gzip模組進行解壓縮。

import urllib.request,urllib.parse

import gzip

url = ''

header =

resp = urllib.request.request(url,headers=header)

print(resp)

data = urllib.request.urlopen(resp)

data = data.read()

data = gzip.decompress(data).decode('utf-8') #從請求頭accept-encoding中看到網頁被壓縮過,所以需要解壓縮

print(data)

現在有了requests這個操作就大大縮水了:

import requests

url = ''

header =

resp = requests.post(url,header)

print(resp.text)

不需要手動解壓,requests已經幫我們做了判斷。

5.json響應內容☆☆☆

requests 中也有乙個內建的 json 解碼器,助你處理 json 資料:

import requests

r = requests.get('')

print(r.json())

6.cookie

如果某個響應中包含一些 cookie,你可以快速訪問它們:

url = ''

r = requests.get(url)

r.cookies['example_cookie_name']

要想傳送你的cookies到伺服器,可以使用 cookies 引數:

cookies = dict(cookies_are='working')

r = requests.get(url, cookies=cookies)

python3語言 Python3學習之語言基礎3

三 判斷 迴圈語句,函式,命名空間,作用域 1 python3 條件控制 python中if語句的一般形式如下所示 python 中用 elif 代替了 else if,所以if語句的關鍵字為 if elif else。注意 1 每個條件後面要使用冒號 表示接下來是滿足條件後要執行的語句塊。2 使用...

python3語言 Python3學習之語言基礎1

一 python3入門,資料型別,字串 python 中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。usr bin python3 counter 10 整型變數 miles 3.14 浮點型變數 name bob 字串 print counter print mil...

python小白學習記錄 爬蟲requests篇

一 引用庫 import requests 二 請求訪問url,網頁相應 res requests.get 網頁位址 三 表明返回內容 目前返回的response物件有四種屬性 status code 檢查請求是否成功 content 將資料轉換為二進位制資料 text 將資料轉換為字串型資料 en...