天天看點

python3 requests子產品_python3 requests子產品用法執行個體

python3的網絡子產品相對python2真的友善了很多,requests一個包就包含了python2的多個包,這從執行個體說明requests用法,作為複習和以後的參考。

requests并不是python預設安裝的,沒安裝使用pip install requests安裝便是,下面是requests使子產品使用執行個體。

python3 requests子產品_python3 requests子產品用法執行個體

GET擷取網頁内容

import requests

r = requests.get("https://www.bobobk.com/vip_parse")

print("狀态碼:\n%d" % r.status_code) #狀态碼

print(r.headers['content-type']) #頭部編碼

print("網頁内容:\n%s" % r.content.decode("utf8")[:100])#content傳回原始資料為byte類型,這裡utf8解碼輸出

print("網頁内容:\n%s" % r.text[:100])#text傳回str類型

如果帶有參數的url呢,也很簡單,requests為了友善,不需要你寫很長的url到get裡面,使用params={url=”https://www.bobobk.com”,id=”1″}這種形式即可

當然你非要寫很長的也是可以的,完全沒問題。

POST資料

post資料也非常簡單,data參數,字典裡面寫上需要post的資料.

import requests

r = requests.post('https://httpbin.org/post', data = {'key':'value'})

添加資料頭

有時網站可能限制了user agent(UA),你直接用預設參數使用的UA是包含了requests的,是以如果修改頭的話就是

import requests

headers = {'user-agent': 'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10'}

url="https://httpbin.org/get"

r = requests.get(url, headers=headers,timeout=5)

#或者使用timeout設定延時

基礎驗證

有的時候如果網站使用了基礎驗證的話,隻需要添加auth參數即可

r = requests.get(url, headers=headers,timeout=5,auth=HTTPBasicAuth('username', 'password'))

#由于httpbasicauth比較普遍,python允許不謝驗證方法,如下

r = requests.get(url, headers=headers,timeout=5,auth=('username', 'password'))

GET下載下傳檔案

r = requests.get('https://www.bobobk.com/wp-content/uploads/2018/12/wizard.webp')

f = open('download.webp', 'wb')

for chunk in r.iter_content(chunk_size=512 * 1024):

if chunk:

f.write(chunk)

f.close()

此處使用的方法可以下載下傳大檔案

POST檔案

當然也是可以直接post檔案的,添加參數files,用法

url = 'https://httpbin.org/post'

files = {'file': ('myfile.xls', open('myfile.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}

r = requests.post(url, files=files)

使用COOKIE

直接指定cookie參數即可

url = 'https://httpbin.org/cookies'

r = requests.get(url, cookies={"username":"bobobk"})

#如果是網頁傳回包含cookie,也可以友善的擷取到cookie

r.cookies

參考來源: