国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python—requests模塊詳解

這篇具有很好參考價值的文章主要介紹了python—requests模塊詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

1、requests簡介

requests是一個很實用的Python HTTP客戶端庫,爬蟲和測試服務器響應數(shù)據(jù)時經(jīng)常會用到,它是python語言的第三方的庫,專門用于發(fā)送HTTP請求,使用起來比urllib更簡潔也更強大。

2、requests庫的安裝

方法1:命令行安裝

  • windows操作系統(tǒng):pip install requests
  • Mac操作系統(tǒng):pip3 install requests
  • Linux操作系統(tǒng):sodo pip install requests

方法2:源碼安裝

  • 下載 requests源碼 http://mirrors.aliyun.com/pypi/simple/requests/
  • 下載文件到本地之后,解壓到Python安裝目錄,之后打開解壓文件
  • 運行命令行輸入python setup.py install 即可安裝

二、常用方法

序號 方法 描述
1 requests.request(url) 構造一個請求,支持以下各種方法
2 requests.get() 發(fā)送一個Get請求
3 requests.post() 發(fā)送一個Post請求
4 requests.head() 獲取HTML的頭部信息
5 requests.put() 發(fā)送Put請求
6 requests.patch() 提交局部修改的請求
7 requests.delete() 提交刪除請求

其中最常用的方法為get()和post(),分別用于發(fā)送Get請求和Post請求。

三、常用屬性

序號 屬性或方法 描述
1 response.status_code 響應狀態(tài)碼
2 response.content 把response對象轉換為二進制數(shù)據(jù)
3 response.text 把response對象轉換為字符串數(shù)據(jù)
4 response.encoding 定義response對象的編碼
5 response.cookie 獲取請求后的cookie
6 response.url 獲取請求網(wǎng)址
7 response.json() 內置的JSON解碼器
8 Response.headers 以字典對象存儲服務器響應頭,字典鍵不區(qū)分大小寫

四、發(fā)送請求

1、發(fā)送GET請求

1) 不帶參數(shù)的請求
import requests
#定義百度URL,獲取百度首頁
url = "http://www.baidu.com"
#使用GET發(fā)起請求
res = requests.get(url)
#將返回對象的2進制數(shù)據(jù)進行解碼并輸出(根據(jù)響應解過中的HTML頭判斷編碼類型)
print(res.content.decode("UTF-8"))
2) 帶參數(shù)的請求

將參數(shù)放在URL中進行請求:

import requests
#將參數(shù)name和age拼接到URL中進行請求
res = requests.get(http://httpbin.org/get?name=gemey&age=22)
#輸出返回對象的文本結果
print(res.text)

將參數(shù)寫在字典中進行請求:

import requests
#將參數(shù)name和age定義到字典params中
params={
	"name":"tony",
	"age":20
}
url="http://httpbin.org/get"
#發(fā)送請求參數(shù)
res = requests.get(url=url,params=params)
#輸出返回對象的文本結果
print(res.text)

自定義HTTP頭信息進行請求:

import requests

# 將參數(shù)name和age定義到字典params中
params = {
	"name": "tony",
	"age": 20
}
url = 'http://httpbin.org/get'

# 定義HTTP頭信息,cookie,UA和referer
headers = {
    "User-agent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-P585Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36",
    "referer": "https://www.abidu.com",
    "Cookies": "1234565678"
}

# 發(fā)送請求參數(shù)
res = requests.get(url = url,params = params,headers = headers)

# 輸出返回對象的文本結果
print(res.text)

2、發(fā)送POST請求

POST請求一般用于提交參數(shù),所以直接進行有參數(shù)的POST請求測試。

import requests

# 將參數(shù)name和age定義到字典params中
params = {
	"name": "tony",
	"age": 20
}

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

# 定義HTTP頭信息
headers = {
    "User-agent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-P585Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36",
    "referer": "https://www.abidu.com",
    "Cookies": "username=user1&passwd=passwd"
}
# 發(fā)送請求參數(shù)
res = requests.post(url = url,params = params,headers = headers)
# 輸出返回對象的文本結果
print(res.text)

五、讀取內容

requests對象的get和post方法都會返回一個Response對象,這個對象里面存的是服務器返回的所有信息,包括響應頭,響應碼等。

上面提到了,對于request,常用的屬性有content、text、json、cookie等。content和text兩者區(qū)別在于,content中間存的是字節(jié)碼,而text中存的是Beautifulsoup模塊根據(jù)猜測的編碼方式將content內容編碼成字符串后的結果。

直接輸出content,會發(fā)現(xiàn)前面存在b’這樣的標志,這是字節(jié)字符串的標志,而text是沒有前面的b,對于純ascii碼,這兩個可以說一模一樣,對于其他的文字,需要正確編碼才能正常顯示。

大部分情況下,我們可以直接使用text,但是當有中文的時候,直接使用text會顯示亂碼,所以需要使用content對象來手動進行解碼后才能正常顯示。

而json屬性則是利用內置的json解析模塊解析json數(shù)據(jù)。

cookie屬性則是直接獲取響應頭中的cookie。

1、以content方式讀取

import requests

url = "http://www.baidu.com"

res = requests.get(url)
#不進行解碼,直接輸出
print(res.content)

輸出結果:

python—requests模塊詳解

進行解碼后輸出:

python—requests模塊詳解

2、以text方式讀取

import requests

url = "http://www.baidu.com"

res = requests.get(url)

print(res.text)

輸出結果: 中文存在亂碼

python—requests模塊詳解

3、讀取json數(shù)據(jù)

import requests

params = {
	"name": "tony",
	"age": 20
}
url = 'http://httpbin.org/get'

headers = {
    "referer": "https://www.abidu.com",
    "Cookies": "1234565678"
}

res = requests.get(url = url,params = params,headers = headers)

print(res.cookies)

輸出結果:將json數(shù)據(jù)轉換為字典進行輸出

python—requests模塊詳解

4、獲取cookies

import requests

url = 'https://www.baidu.com'
 
res = requests.get(url = url)

print(res.cookies.extract_cookies)

讀取cookie時,直接使用reponse.cookie會返回一個RequestsCookieJar對象,不會直接顯示cookie的信息,所以需要再使用extract_cookies屬性對該對象進行解析,結果如下:

python—requests模塊詳解

六、其他方法

1、設置超時退出

可以通過timeout屬性設置超時時間,一旦超過這個時間還沒獲得響應內容,就會提示錯誤。

import requests

url = 'https://www.baidu.com'

#設置超時時間上限為1s
res = requests.get(url = url,timeout=1)

print(res.content.decode("UTF-8"))

2、異常處理

import requests

url = 'https://www.baidu.com'

#設置超時時間上限為1s,并使用try語句處理異常
try:
	res = requests.get(url = url,timeout=1)
    print(res.content.decode("UTF-8"))
except exceptions.Timeout as e:
    print(e)
except exceptions.HTTPError as e:
    print(e)

3、設置代理

代理格式: proxies = { ‘協(xié)議’:‘協(xié)議://IP:端口號’}

提示: 當我們抓取的地址為http時,使用http代理,反之使用https代理

示例:

import requests

url = 'https://www.baidu.com'

#使用字典定義代理
proxies={
	'http':'http://123.45.67.76:8888'
	'https':'http://123.45.67.76:4433'
}
#設置超時時間上限為1s,并使用try語句處理異常
try:
	res = requests.get(url = url,timeout=1,proxies=proxies)
    print(res.content.decode("UTF-8"))
except exceptions.Timeout as e:
    print(e)
except exceptions.HTTPError as e:
    print(e)

4、使用Session進行會話管理

直接 requests.get() 或者 requests.post() 發(fā)送GET請求或POST請求;當然也是可以帶上 cookies 和 headers 的,但這都是一次性請求,你這次帶著cookies信息,后面的請求還得帶。如果使用sessionl來發(fā)起請求,session實例在請求了一個網(wǎng)站后,對方服務器設置在本地的cookie會保存在session中,下一次再使用session請求對方服務器的時候,會帶上前一次的cookie,從而實現(xiàn)回話保持。文章來源地址http://www.zghlxwxcb.cn/news/detail-471175.html

import requests

#使用session,需要先實例化一個session對象。
session = requests.session()

headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
        'Referer': "https://creator.douyin.com/"
}

url = "https://sso.******.com/get_qrcode/?next=https:%2F%2Fcreator.douyin.com%2Fcreator-micro%2Fhome&aid=2906&service=https:%2F%2Fcreator.douyin.com&is_vcd=1&fp=ktv0uumo_gD7FPCuy_MfX7_44zL_9T1C_6i8sUgr4bDT6"

data1 = {
    "name" : "test",
    "passwd" : "passwd"
}
data2 = {
    "name" : "test",
    "age" : 20
}
#使用session對象發(fā)起請求,進行登錄。
try:
	res = session.get(url = url,timeout=1,headers = headers,data=data1)
    print(res.json())
    #使用的登錄后的session對需要登錄的操作再次發(fā)起請求。
    res2 = session.post(url,data=date2)
except exceptions.Timeout as e:
    print(e)
except exceptions.HTTPError as e:
    print(e)

到了這里,關于python—requests模塊詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Node.js http 模塊詳解:request 對象

    Node.js http 模塊詳解:request 對象

    前文介紹了 http 模塊的基本用法,主要就是調用 createServer 和 listen 方法來創(chuàng)建和啟動服務。要處理具體的 HTTP 請求,就要在 createServer 方法中寫點什么。本文來介紹處理請求的兩個核心對象之一的 request 。 HTTP 協(xié)議最早設計出來,僅僅為了獲取網(wǎng)絡上的某個 HTML 文檔。隨著后

    2024年02月08日
    瀏覽(98)
  • 接口自動化測試-Requests模塊實戰(zhàn)詳解,一篇打通...

    什么是requests? requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試服務器響應數(shù)據(jù)時經(jīng)常會用到, Requests是Python語言的第三方的庫,專門用于發(fā)送HTTP請求 下載 請求方式 1、get請求 2、post請求 3、響應的內容 4、超時設置 5、添加請求頭信息

    2024年02月13日
    瀏覽(20)
  • python requests模塊

    python requests模塊

    目錄 一:介紹 二:發(fā)送get請求 三:發(fā)送post請求 四:發(fā)送put請求 五:發(fā)送delele請求 六:響應信息 一:介紹 requests?是 Python 中的一個非常流行的 HTTP 客戶端庫,用于發(fā)送 HTTP 請求。它使得發(fā)送 GET、POST、PUT、DELETE 等請求變得非常簡單。 二:發(fā)送get請求 import requests ? ?? #

    2024年01月20日
    瀏覽(20)
  • Python爬蟲之requests模塊

    requests文檔http://docs.python-requests.org/zh_CN/latest/index.html 1、requests模塊的作用: 發(fā)送http請求,獲取響應數(shù)據(jù) 2、requests模塊是一個第三方模塊,需要在你的python(虛擬)環(huán)境中額外安裝 pip/pip3 install requests 3、requests模塊發(fā)送get請求 需求:通過requests向百度首頁發(fā)送請求,獲取該頁面

    2024年02月09日
    瀏覽(18)
  • 27 Python的requests模塊

    概述 ????????在上一節(jié),我們介紹了Python的logging模塊,包括:logging的基本使用、logging的選項設置、日志旋轉、logging.Filter類等內容。在這一節(jié),我們將介紹Python的requests模塊。requests模塊是Python中最常用的HTTP客戶端庫之一,因為它簡單易用,功能強大,并可以發(fā)送各種類

    2024年02月08日
    瀏覽(19)
  • Python+Requests模塊獲取響應內容

    Python+Requests模塊獲取響應內容

    響應包括響應行、響應頭、響應正文內容,這些返回的響應信息都可以通過Requests模塊獲取。這些 獲取到的響應內容也是接口測試執(zhí)行得到的實際結果。 獲取響應行 獲取響應頭 獲取其它響應信息 代碼示例: 依據(jù)不同響應正文內容的情況,Requests模塊有四種不同的處理方式

    2024年02月16日
    瀏覽(21)
  • Python爬蟲—requests模塊簡單應用

    Python爬蟲—requests模塊簡單應用

    requests的作用與安裝 作用:發(fā)送網(wǎng)絡請求,返回響應數(shù)據(jù) 安裝:pip install requests requests模塊發(fā)送簡單的get請求、獲取響應 需求:通過requests向百度首頁發(fā)送請求,獲取百度首頁的數(shù)據(jù) response的常用屬性: response.text 響應體str類型 response.encoding 從HTTP header中猜測的響應內容的編

    2024年01月24日
    瀏覽(32)
  • Python+Requests模塊添加cookie

    Python+Requests模塊添加cookie

    對于某些網(wǎng)站,登錄然后從瀏覽器中獲取cookies,以后就可以直接拿著cookie登錄了,無需輸入用戶 名密碼。 一、在參數(shù)中添加cookie 在發(fā)送請求時使用cookies 代碼示例: 查看執(zhí)行結果: ?二、在頭部添加cookie 在發(fā)送請求時使用headers 代碼示例: 查看執(zhí)行結果 代碼示例: 添加

    2024年02月10日
    瀏覽(29)
  • python 模塊requests 發(fā)送 HTTP 請求

    一、簡介 requests 模塊是 python 基于 urllib,采用 Apache2 Licensed 開源協(xié)議的 HTTP 庫。它比 urllib 更加方便,可以節(jié)約我們大量的工作 二、安裝 三、方法 requsts.requst(method, url,headers,cookies,proxies,timeout) method:請求方式;字符串類型 url:請求的地址;字符串類型 params:查詢參數(shù),g

    2024年02月11日
    瀏覽(24)
  • python使用requests模塊請求http接口

    python使用requests模塊請求http接口

    Python requests 是一個常用的 HTTP 請求庫,可以方便地向網(wǎng)站發(fā)送 HTTP 請求,并獲取響應結果。requests 模塊比 urllib 模塊更簡潔。使用 requests 發(fā)送 HTTP 請求需要先導入 requests 模塊,導入后就可以使用 requests 提供的方法向指定 URL 發(fā)送 HTTP 請求。 requests常用參數(shù) 參數(shù) 說明 method 請

    2024年02月09日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包