Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
1. 簡介
Requests庫是由python語言基于urllib編寫的,采用的是Apache2 Licensed開源協議的HTTP庫,它在做網絡請求上會比urllib使用更加方便。
2. 安裝
直接使用pip安裝即可
pip install requests
1. 請求方式
requests包含多種請求方式:
2. 基本用法
這里只介紹常用的GET請求和POST請求
2.1 GET請求
GET請求中的參數包含在URL里面,并且數據是明文的,可以在URL中看到。
GET請求提交的數據最多只有1024字節。
以實驗網址為例(http://httpbin.org/get)
基本請求:
import requests
__author__='Evan'
r=requests.get(url='http://httpbin.org/get') # 使用GET請求訪問
print(r.text) # 打印網頁的HTML文本
打印結果:
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0"
},
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/get"
}
可以發現,我們成功的發起了GET請求,返回結果中包含請求頭、URL、IP等信息。
那么,對于GET請求,如果要附加額外的信息,要怎么添加呢?
使用params參數構造帶請求參數的GET請求:
import requests
__author__='Evan'
# 請求參數
params={
'name': 'Evan',
'age': '24'
}
r=requests.get(url='http://httpbin.org/get', params=params) # 帶請求參數的GET請求
print(r.text)
打印結果:
{
"args": {
"age": "24",
"name": "Evan"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0"
},
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/get?name=Evan&age=24"
}
可以看到設置的params參數已經起作用了,不過還有一種方法也可以提供請求參數,就是構建完整的URL,因為GET請求的參數會包含在URL里面。
使用 urlencode模塊 將字典序列化為GET請求參數:
import requests
from urllib.parse import urlencode
__author__='Evan'
# 請求參數
params={
'name': 'Evan',
'age': '24'
}
r=requests.get(url='http://httpbin.org/get?' + urlencode(params))
print(r.text)
打印結果:
{
"args": {
"age": "24",
"name": "Evan"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0"
},
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/get?name=Evan&age=24"
}
可以看到結果和使用params參數的GET請求是一樣的。
2.2 POST請求
POST請求大多在表單提交時發起。比如一個登陸表單,輸入用戶名和密碼后,點擊“登陸”按鈕,這通常會發起一個POST請求,其數據通常以表單的形式傳輸,表單數據會放在請求體中,而不會體現在URL中,所以提交的數據是保密的,不會泄露敏感信息,并且 POST請求提交的數據大小沒有限制。
以實驗網址為例(http://httpbin.org/post)
基本請求:
import requests
__author__='Evan'
# 請求參數
data={
'name': 'Evan',
'age': '24'
}
r=requests.post(url='http://httpbin.org/post', data=data) # 使用POST請求訪問
print(r.text)
打印結果:
{
"args": {},
"data": "",
"files": {},
"form": {
"age": "24",
"name": "Evan"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "16",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0"
},
"json": null,
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/post"
}
可以發現,其中form部分就是我們提交的數據,這就證明POST請求成功發送了。
requests還可以模擬提交一些數據,比如上傳文件,要怎么添加呢?
使用files參數構造帶上傳文件的POST請求:
import requests
__author__='Evan'
files={'file': open('haimianbaobao.ico', 'rb')} # 文件路徑
r=requests.post(url='http://httpbin.org/post', files=files) # 帶上傳文件的POST請求
print(r.text)
打印結果:
{
"args": {},
"data": "",
"files": {
"file": "data:application/octet-stream;base64,R0lGODlhkQCCAHAAACH5BABBAAAALAAAAA...="
},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "8732",
"Content-Type": "multipart/form-data; boundary=c15f3180298f305a48359831993ed6b8",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0"
},
"json": null,
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/post"
}
以上省略部分內容,可以發現,里面包含files這個字段,而form字段是空的,這證明文件上傳部分會單獨有一個files字段來標識。
3. 高級用法
現在大部分網站都有反爬機制,所以在請求網頁的時候一般都要添加請求頭才可以得到響應,某些網站限制登陸時還要設置cookies等,下面介紹一些常用的高級用法。(POST請求和GET請求同理,這里以GET請求為例)
3.1 添加請求頭
請求頭,用來說明服務器要使用的附加信息,比較重要的信息有Cookie、Referer、User-Agent等
下面簡要說明一些常用的請求頭信息:
看到這相信你已經了解請求頭中大部分參數的含義了,現在開始用程序實現這些功能
使用headers參數添加”User-Agent“:
import requests
__author__='Evan'
# 請求頭參數
headers={
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/78.0.3904.108 Safari/537.36'
}
r=requests.get(url='http://httpbin.org/get', headers=headers) # 帶請求頭的GET請求
print(r.text)
打印結果:
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
},
"origin": "12.192.229.251, 12.192.229.251",
"url": "https://httpbin.org/get"
}
可以看到,“User-Agent”已經被添加上去了,所以添加請求頭很簡單,只要添加headers參數即可,headers是一個字典類型,根據需求填入相應的請求頭信息就可以輕松的提交各種請求方式了。
3.2 會話維持
說到會話維持,第一想到的就是使用cookies,網頁為什么能保持會話,在登陸后不用重新登陸,就是因為cookies保持會話了,所以我們想要會話維持就要在請求頭中添加對應的cookies,但是問題來了,如果每次在請求的時候都去添加cookies,這未免也太麻煩了吧,所以requests有一個新的利器-Session對象,利用它,我們可以方便地維護一個會話,而且不用擔心cookies的問題,它會幫我們自動處理好。
示例如下:
沒有使用Session之前:
import requests
__author__='Evan'
# 第一次訪問,并設置cookies
r1=requests.get(url='http://httpbin.org/cookies/set/number/123456789')
print('r1: {}'.format(r1.text))
# 第二次訪問
r2=requests.get(url='http://httpbin.org/cookies')
print('r2: {}'.format(r2.text))
打印結果:
r1: {
"cookies": {
"number": "123456789"
}
}
r2: {
"cookies": {}
}
這里我們請求了一個測試網址(http://httpbin.org/cookies/set/number/123456789)
請求這個網址時,可以設置一個cookie,名稱叫做number,內容是123456789,
隨后又請求了(http://httpbin.org/cookies),此網址可以獲取當前的Cookies,但是看打印結果cookies為空,所以使用2次requests是相當于打開兩個瀏覽器,這兩次requests的內容是不共享的。
接下來看使用Session的例子:
import requests
__author__='Evan'
# 實例化Session對象
s=requests.Session()
# 第一次訪問,并設置cookies
r1=s.get(url='http://httpbin.org/cookies/set/number/123456789')
print('r1: {}'.format(r1.text))
# 第二次訪問
r2=s.get(url='http://httpbin.org/cookies')
print('r2: {}'.format(r2.text))
打印結果:
r1: {
"cookies": {
"number": "123456789"
}
}
r2: {
"cookies": {
"number": "123456789"
}
}
成功獲取!所以需要登陸某些網站傳遞登陸信息時就使用Session對象來保持同一個會話,這樣就免去了每次要設置cookies的煩瑣了。
3.3 代理設置
對于某些網站,在測試的時候請求幾次能正常獲取內容,但是一旦開始大規模爬取,網站可能會彈出驗證碼,或者跳轉到登陸認證頁面,更甚至可能會直接封禁客戶端的IP,導致一定時間段內無法訪問,那么,為了防止這種情況發生,我們需要設置代理來解決這個問題。
使用proxies參數設置代理:
import requests
__author__='Evan'
# 使用普通格式
proxies={"http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080"}
# 使用HTTP Basic Auth格式
proxies={"http": "http://user:password@10.10.1.10:3128"}
# 使用SOCKS協議(需要安裝 'requests[socks]' 模塊)
proxies={"http": "socks5://user:password@host:port", "https": "socks5://user:password@host:port"}
requests.get('http://httpbin.org/get', proxies=proxies) # 使用代理的GET請求
當然,直接運行這個實例可能不行,因為這些代理IP可能是無效的,這里只講解proxies的使用格式和方法,具體大家可以去代理IP網站下載免費的代理或者付費的代理試驗。
3.4 超時設置
在本機網絡狀況不好或者服務器網絡響應太慢時,我們可能會等待很久的時間才能收到響應,這個時候就可以使用timeout參數,這個時間的計算是從發出請求到服務器響應的時間。
示例如下:
import requests
__author__='Evan'
r=requests.get(url='http://httpbin.org/get', timeout=1)
print(r.text)
打印結果:
Traceback (most recent call last):
File "C:/Evan/my_program/shining_star/trunk/unit_testing/test1.py", line 20, in <module>
r=requests.get(url='http://httpbin.org/get', timeout=1)
File "C:\pycharm_user\venv\lib\site-packages\requests\api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "C:\pycharm_user\venv\lib\site-packages\requests\api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "C:\pycharm_user\venv\lib\site-packages\requests\sessions.py", line 533, in request
resp=self.send(prep, **send_kwargs)
File "C:\pycharm_user\venv\lib\site-packages\requests\sessions.py", line 646, in send
r=adapter.send(request, **kwargs)
File "C:\pycharm_user\venv\lib\site-packages\requests\adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='httpbin.org', port=80): Read timed out. (read timeout=1)
通過這樣的方式,我們可以將超時時間設置為1秒,如果在1秒內沒有收到響應,那就拋出異常,還可以加上try-except進行異常處理,防止等待過長而浪費時間,我們還可以直接設置為None,或者不設置直接留空,因為默認也是None,這樣的話表示永久等待下去,直到收到服務器響應結果。
3.5 身份認證
在訪問某些網站時,我們可能會遇到如下圖所示,彈出一個輸入框提示身份驗證,此時可以使用auth參數添加用戶名和密碼進行認證。
示例如下:
import requests
__author__='Evan'
r=requests.get('http://localhost:5000', auth=('username', 'password'))
print(r.text)
auth參數是一個元組,該元組第一個參數為用戶名,第二個參數為密碼,提供這個參數后requests會默認使用HTTPBasicAuth這個類來認證,這樣就可以解除認證,繼續訪問后續頁面了。
4. 響應
當我們使用requests請求網頁時,會返回一個response,我們就是要解析這個response,才能拿到我們想要的信息,所以接下來先介紹響應是由哪些信息組成的,然后再介紹怎么用requests獲取這些信息。
4.1 響應的組成
響應是指服務器返回客戶端的結果,可以分為三個部分:(響應狀態碼、響應頭、響應體)
4.1.1 響應狀態碼
響應狀態碼表示服務器的響應狀態,如200代表服務器正常響應,404代表頁面未找到,500代表服務器內部發生錯誤。在爬蟲中,我們可以根據狀態碼來判斷服務器的響應狀態然后再進行下一步的處理。
下面列出一些常見的狀態碼供參考:
200- 【成功】服務器已經成功處理了請求
301- 【永久移動】請求的網頁已永久移動到新位置,即永久重定向
302- 【臨時移動】請求的網頁暫時跳轉到其他頁面,即暫時重定向
400- 【錯誤請求】服務器無法解析該請求
401- 【未授權】請求沒有進行身份驗證或驗證未通過
403- 【禁止訪問】服務器拒絕此請求
404- 【未找到】服務器找不到請求的網頁
408- 【請求超時】服務器請求超時
410- 【已刪除】請求的資源已永久刪除
500- 【服務器內部錯誤】服務器遇到錯誤,無法完成請求
502- 【錯誤網關】服務器作為網關或代理,從上游服務器收到無效響應
503- 【服務不可用】服務器當前無法使用
504- 【網關超時】服務器作為網關或代理,但是沒有及時從上游服務器收到請求
505- 【HTTP版本不支持】服務器不支持請求中所有的HTTP協議版本
4.1.2 響應頭
響應頭包含了服務器對請求的應答信息,如Content-Type、Server、Set-Cookie等。
下面簡要說明一些常用的響應頭信息:
4.1.3 響應體
響應體是最重要的內容,響應的正文數據都是在響應體中,比如請求網頁時,它的響應體就是網頁的HTML代碼,請求一張圖片時,它的響應體就是圖片的二進制數據,在做爬蟲時,我們主要通過響應體得到網頁的源代碼,JSON數據等,然后從中做相應內容的提取。
當然,在我們不使用爬蟲時也可以直接看到響應體(也就是網頁源代碼),所以在開始寫爬蟲前應先看一遍網頁源代碼,了解自己要抓取哪些信息,這些信息放在哪個位置等等。
下面介紹一些查看網頁源代碼的方法:
4.2 響應的獲取
在發送請求后,得到的自然就是響應了,上面我們已經介紹了響應是由哪些信息組成的,現在介紹怎么用requests去獲取這些信息。
示例如下:
# -*- coding:utf-8 -*-
import requests
__author__='Evan'
r=requests.get(url='http://httpbin.org/get') # 使用GET請求訪問
# 獲取網頁信息
print('請求的URL: {}'.format(r.url)) # 獲取當前URL,返回一個字符串
print('響應狀態碼: {}'.format(r.status_code)) # 獲取響應狀態碼,返回一個整形
print('響應頭部信息: {}'.format(r.headers)) # 獲取響應頭部信息,返回一個字典
print('響應Cookies: {}'.format(r.cookies)) # 獲取響應Cookies,返回一個字典
print('訪問的歷史記錄: {}'.format(r.history)) # 獲取訪問的歷史記錄,可以查看是否重定向,返回一個列表
print('網頁源代碼: {}'.format(r.text)) # 獲取網頁源代碼,返回一個字符串
print('網頁二進制數據: {}'.format(r.content)) # 獲取網頁內容的二進制格式,返回一個二進制數據
print('JSON數據: {}'.format(r.json)) # 如果響應信息是JSON數據則調用此方法,返回一個字典
打印結果:
請求的URL: http://httpbin.org/get
響應狀態碼: 200
響應頭部信息: {'Access-Control-Allow-Credentials': 'true', 'Access-Control-Allow-Origin': '*', 'Content-Encoding': 'gzip', 'Content-Type': 'application/json', 'Date': 'Sat, 21 Dec 2019 13:50:15 GMT', 'Referrer-Policy': 'no-referrer-when-downgrade', 'Server': 'nginx', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'DENY', 'X-XSS-Protection': '1; mode=block', 'Content-Length': '181', 'Connection': 'keep-alive'}
響應Cookies: <RequestsCookieJar[]>
訪問的歷史記錄: []
網頁源代碼: {
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.21.0"
},
"origin": "119.123.1.99, 119.123.1.99",
"url": "https://httpbin.org/get"
}
網頁二進制數據: b'{\n "args": {}, \n "headers": {\n "Accept": "*/*", \n "Accept-Encoding": "gzip, deflate", \n "Host": "httpbin.org", \n "User-Agent": "python-requests/2.21.0"\n }, \n "origin": "119.123.1.99, 119.123.1.99", \n "url": "https://httpbin.org/get"\n}\n'
JSON數據: <bound method Response.json of <Response [200]>>
原文鏈接:https://blog.csdn.net/weixin_43750377/article/details/103603834
言
接口測試是我們在測試工作中經常見到的,我們工作中常用到的接口工具有jmeter,postman,soupUI等工具,那么在通過代碼做接口測試呢?或者通過代碼的方式做接口自動化呢?
requests
requests屬于python的第三方庫,通常用來發送http和https的請求,既然能向http和https發送請求,那么就能來做接口測試。
安裝
pip install requests
requests使用方法
了解requests是如何安裝的了,也知道了requests的安裝方法了,那么接下來就開始進行實際操作了。
get請求
都知道https請求方式有很多種,如何通過requests來發送get請求呢?這里安靜通過模仿百度搜索內容進行發送請求。
其中get方法中存在3個參數:url和params,其中url表示我們請求的地址,params表示請求參數(get方式的請求存在url地址中),headers表示請求頭信息內容。
import requests
url='http://www.baidu.com/s'
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
}
params={
"wd": "測試-安靜"
}
r=requests.get(url=url, params=params,headers=headers)
print(r)
print(r.url)
if '測試-安靜' in r.content.decode('utf-8'):
print('請求成功!')
通過執行結果是成功的。
其中requests的返回內容還有很多種,上面介紹的url,和content只是其中兩種。
r.status_code #響應狀態碼
r.content #字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮
r.headers # 請求頭信息
r.json() # Requests中SON
r.url # 獲取url
r.encoding # 編碼格式
r.cookies # 獲取cookie
r.text #字符串方式的響應體
post請求
post請求和get請求類似。post的參數主要有url、data(json)、headers。
url:請求接口地址
data:post請求參數類型
json:post請求參數類型
headers:請求頭信息
這里安靜通過請求查詢天氣的接口來模擬post請求。
data請求
import requests
# 登錄請求地址
url='http://apis.juhe.cn/simpleWeather/query'
# 請求頭
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36",
}
# body數據
data={
'city': "上海", # 賬號
"key": "331eab8f3481f37868378fcdc76cb7cd", # 密碼
}
# 發送請求
r=requests.post(url, headers=headers, data=data)
print(r.text)
通過執行發現,已經請求成功,并返回了響應結果。
json請求
import requests
url="http://httpbin.org/post"
# 添加json數據
json={
"username":"AnJing",
"password":"123456"
}
# 通過json方式添加數據
r=requests.post(url,json=json)
print(r.text)
通過執行結果可以看出我們請求的接口類型。
請求HTTPS
現在的網站都是HTTPS的了,所謂的HTTPS就是加密過的網站,在原有的HTTP的基礎上加上了SSL。HTTPS的請求基本上都是屬于SSL加密的,那么對于這種HTTPS的請求,如果我們通過requests的請求進行訪問,會報一個requests.exceptions.SSLError的錯誤。
對于這種問題,我們可以通過加入參數“verify=False”,requests請求時,verify默認為True,當設置False時,requests請求會進行忽略SSL,從而進行訪問HTTPS請求。
import requests
url="https://www.51testing.org/htm/brandpc/PZ.html"
r=requests.get(url, verify=False)
print(r.text)
通過加入參數后,在去執行的時候就不會報SSLerror的錯誤了。
session
關于session相信大家都不陌生,他和cookies一樣使用來表示用戶的登錄的一種信息,cookies通常保存在客戶端的,session保存在服務端上。其中session可以相當于一個虛擬的瀏覽器,用來保持登錄的狀態。requests中有單獨方法 requests.session() 的方法用來保存登錄狀態。當然requests中有關于對cookies的登錄,我們可以通過cookies加入到請求中,然后用來模擬登錄場景。然后再去請求其他頁面,可以看看到底我們的會話有沒有保存成功。這里通過模擬博客園的場景進行來操作cookies登錄。
首先通過Fiddler進行抓取登錄前和登錄后的cookies值來判斷博客園的登錄到底是通過什么進行來登錄的。
登錄前的cookies
登錄后的cookies
通過使用fiddler抓取,我們已經找到了登錄的cookies內容,然后通過requests中的cookies進行來添加。具體代碼:
# coding:utf-8
import requests
import urllib3
urllib3.disable_warnings()
s=requests.session()
s.verify=False
url='https://passport.cnblogs.com/user/signin'
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
r=s.get(url,headers=headers)
cooks={
".Cnblogs.AspNetCore.Cookies":"這里寫入抓取到的cookies值",
".CNBlogsCookie":"抓取到的cookies值"
}
c=requests.cookies.RequestsCookieJar()
# 登陸有效的cookies
c.set(".CNBlogsCookie", cooks[".CNBlogsCookie"])
c.set(".Cnblogs.AspNetCore.Cookies", cooks[".Cnblogs.AspNetCore.Cookies"])
# 將cookies值全部添加到session中
s.cookies.update(c)
# 訪問后臺地址,確定是否登錄成功
url1="https://i.cnblogs.com/posts/edit"
r1=s.get(url1)
result=r1.content.decode('utf-8')
if "博客后臺 - 博客園" in result:
print("登錄成功!")
通過執行發現,我們已經完成了登錄后,并通過session的形式進行訪問本網站的其他地址一樣是保持著登錄的狀態。
重定向
接口測試中也經常遇到重定向的問題,什么是重定向?就是通過各種方法將各種網絡請求重新定個方向轉到其它位置。在requests中也有這對重定向的操作allow_redirects其中參數默認是True就是允許重定向,當我們請求的時候,將這個參數設置成False,就能不讓其進行重定向。
# coding:utf-8
import requests
url='http://github.com'
# 重定向為False
r=requests.get(url, allow_redirects=False)
print('拒絕重定向請求的狀態碼:%s'%(r.status_code))
print('拒絕重定向請求地址:%s'%(r.url))
# 重定向為True(默認為True)
r2=requests.get(url)
print('允許重定向請求的狀態碼:%s'%(r2.status_code))
print('允許重定向請求地址:%s'%(r2.url))
通過執行發現,我們的參數已經設置成功了。在拒絕重定向的時候請求的狀態為301,允許重定向的時候為200。
總結
安靜簡單地介紹了requests中的一些常用方法,這些方法可以幫助我們通過python+requests進行編寫關于接口測試的方便的代碼。等熟練使用requests后可以進行嘗試編寫自動化測試代碼進行輔助日常測試工作。
請關注+私信回復:“頭條”就可以免費拿到軟件測試學習資料和面試題庫,快速讓自己變強!
蟲的基本框架是獲取HTML頁面信息,解析頁面信息,保存結果,requests模塊是用于第一步獲取HTML頁面信息; requests庫用于爬取HTML頁面,提交網絡請求,基于urllib,但比urllib更方便;
(一)、發送請求
對應http的不同請求類型,requests庫有不同的方法:
1.requests.get():
獲取HTML網頁的主要方法,對應于HTTP的GET
2.requests.post():
向HTML網頁提交POST請求的方法,對應于HTTP的POST
3.requests.head():
獲取HTML網頁頭信息的方法,對應于HTTP的HEAD
4.requests.put():
向HTML網頁提交PUT請求,對應于HTTP的PUT
5.requests.patch():
向HTML網頁提交局部修改請求,對應于HTTP的PATCH
6.requests.delete():
向HTML頁面提交刪除請求,對應于HTTP的DELETE
(二)、響應內容
當我們用上述方法向HTML頁面發送請求后,會獲得一個Response對象;
例如 r=requests.get('https://www.python.org/')
r 就是一個Response對象,我們可以從這個對象中獲取我們想要的信息;
Response對象的一些屬性有:
(三)、實例
*請認真填寫需求信息,我們會在24小時內與您取得聯系。