91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何使用Requests請求網頁

發布時間:2023-03-14 11:14:30 來源:億速云 閱讀:87 作者:iii 欄目:開發技術

本篇內容主要講解“Python如何使用Requests請求網頁”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python如何使用Requests請求網頁”吧!

Requests 繼承了urllib2的所有特性。

Requests支持HTTP連接保持和連接池,支持使用cookie保持會話,支持文件上傳,支持自動確定響應內容的編碼,支持國際化的 URL 和 POST 數據自動編碼。

安裝方式

利用 pip 安裝

$ pip install requests

GET請求

基本GET請求(headers參數 和 parmas參數)

1.最基本的GET請求可以直接用get方法'

response = requests.get("http://www.baidu.com/")
 
# 也可以這么寫
# response = requests.request("get", "http://www.baidu.com/")

2.添加 headers 和 查詢參數

如果想添加 headers,可以傳入headers參數來增加請求頭中的headers信息。

如果要將參數放在url中傳遞,可以利用 params 參數。

import requests
 
kw = {'wd':'長城'}
 
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一個字典或者字符串的查詢參數,字典類型自動轉換為url編碼,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
 
# 查看響應內容,response.text 返回的是Unicode格式的數據
print (response.text)
 
# 查看響應內容,response.content返回的字節流數據
print (respones.content)
 
# 查看完整url地址
print (response.url)
 
# 查看響應頭部字符編碼
print (response.encoding)
 
# 查看響應碼
print (response.status_code)

運行結果

......
 
......
 
'http://www.baidu.com/s?wd=%E9%95%BF%E5%9F%8E'
 
'utf-8'
 
200

使用response.text 時,Requests 會基于 HTTP 響應的文本編碼自動解碼響應內容,大多數 Unicode 字符集都能被無縫地解碼。

使用response.content 時,返回的是服務器響應數據的原始二進制字節流,可以用來保存圖片等二進制文件。

POST方法

1.基本的POST的請求

response = requests.post("http://www.baidu.com/",data = data)

2.body帶參數

formdata = {
    "type": "AUTO",
    "doctype": "json",
    "key": "www",
    "ue": "UTF-8",
}
url = "http://auto-installment/v1/loan-credit-check"
response = requests.post(url,data = data,headers=headers)
 
print(response.text)#顯示返回結果
print(response.json())# 如果是json文件可以直接顯示

注意:

打印的結果出現中文亂碼,使用json.dupms(response, ensure_ascii=False))解決

Session

一般利用Session在跨請求的時候保持某些參數,比如實現登錄后才能訪問其他頁面

# 1. 創建session對象,可以保存Cookie值
session = requests.session()
 
# 2. 需要登錄的用戶名和密碼
data = {"username": "mxxxx", "password": "1233444"}
 
# 3. 發送附帶用戶名和密碼的請求,并獲取登錄后的Cookie值,保存在ssion里
session.post("https://www.jianshu.com/sign_in", data=data)
 
# 4. ssion包含用戶登錄后的Cookie值,可以直接訪問那些登錄后才可以訪問的頁面
response = session.get("https://www.jianshu.com/writer#/")

踩坑記要

1.在使用requests去請求一個接口時,出現報錯的情況,但是這個接口本身卻沒有問題。這是因為接口的請求參數有兩種情況:簡單類型(一般少于3個)和復雜對象類型。

解決方法:在headers中定義一下這兩種參數的類型

簡單類型:headers={"Content-Type": "application/x-www-form-urlencoded"}

復雜對象類型:headers={"Content-Type":application/json}

2.某些HTTPS請求存在 SSL證書驗證

解決方法:response = requests.get("https://www.baidu.com/", verify=False)

擴展

1.requests請求失敗后,增加重試機制(若失敗,將會重試3次)

request_retry = requests.adapatrs.HTTPAdapaters(max_retries=3)
session.mount('https://',request_retry)

2.使用grequests實現異步請求

urls = [
    'http://www.url1.com',
    'http://www.url2.com',
    'http://www.url3.com',
    'http://www.url4.com',
    'http://www.url5.com',
]
resp = (grequests.get(u) for u in urls)
grequests.map(resp)

3.自定義cookies

我們使用Session實例來保持請求之間的cookies,但是有些特殊情況,需要使用自定義的cookies

我們使用Session實例來保持請求之間的cookies,但是有些特殊情況,需要使用自定義的cookies

# 自定義cookies
cookie = {'guid':'5BF0FAB4-A7CF-463E-8C17-C1576fc7a9a8','uuid':'3ff5f4091f35a467'}
 
session.post('http://', cookies=cookie)

4.統計一個API請求花費的時間

session.get(url).elapsed.total_seconds()

5.設置請求超時

session.get(url, timeout=15)

6.文件上傳

Requests利用files作為參數模擬提交文件數據

file = {'file':open('test.bmp','rb')}   #rb表示用二進制格式打開指定目錄下的文件,且用于只讀
r =requests.post('http://',files=file)
print(r.text)

到此,相信大家對“Python如何使用Requests請求網頁”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临猗县| 柳林县| 五原县| 贵德县| 太仆寺旗| 南安市| 六安市| 台北县| 郴州市| 阜南县| 区。| 渑池县| 奇台县| 新泰市| 阆中市| 新乐市| 庆元县| 柳河县| 龙川县| 漯河市| 巴东县| 安化县| 平顶山市| 永福县| 灌阳县| 饶平县| 湘阴县| 胶南市| 内乡县| 鹤岗市| 库伦旗| 吐鲁番市| 仁寿县| 包头市| 自治县| 武乡县| 六盘水市| 南阳市| 林西县| 巴塘县| 虎林市|