Python之requests的使用(二)
??requests的使用(二)
上一篇我們說了requests的簡單用法,知道了如何發(fā)送請求,今天我們更深層次的來學習requests。我們看看高級一點的操作,比如講文件上傳,cookies設(shè)置,代理設(shè)置之類的。
??1.文件上傳
我們知道requests可以模擬提交一些數(shù)據(jù),除此之外。有的網(wǎng)站需要我們上傳文件,我們用requests同樣也可以實現(xiàn)。比如講,我們現(xiàn)在想上傳文件,我們可以這樣做。
import requests
f = {'f':open('a.text','rb')}
r = requests.post('http://httpbin.org/post',files = f)
print(r.text)我們運行一下程序,我們看有什么效果。
我們可以看到響應里面包含了files的這個字段,而form這個字段是空的,這證明了文件上傳部分會單獨有一個files字段來標識。
??2.cookies
我們可以用cookies來維持登錄狀態(tài),在瀏覽器里面,在開發(fā)者工具里面,我們可以找到cookies字段,我們可以直接復制即可。
我們將cookies設(shè)置到headers里面,然后,發(fā)送請求,就可以登錄了。示例代碼如下:
??3.SSL證書驗證
那么什么是SSL證書呢?
- SSL證書是一種數(shù)字證書,是一種電子副本,類似于駕駛證、護照和營業(yè)執(zhí)照的電子副本。它由受信任的數(shù)字證書頒發(fā)機構(gòu)(CA)簽發(fā),并且客戶端和服務器都必須驗證證書的有效性。
- SSL證書的主要功能是提供服務器身份驗證和數(shù)據(jù)傳輸加密。它可以確保數(shù)據(jù)在傳輸過程中不被竊取或篡改,并且可以增強安全性,防止未經(jīng)授權(quán)的人員訪問服務器。
- 在SSL證書驗證過程中,客戶端和服務器都需要驗證證書的有效性。
此外,requests還有證書驗證的功能,當發(fā)送HTTP請求的時候,它會檢查SSL證書,我們可以使用verify參數(shù)控制是否檢查此證書。一般默認是打開的。
那我們的代碼怎么寫呢?
response = requests.get('http://www.baidu.com',verify = False)??4.代理設(shè)置
對于一些網(wǎng)站,在測試的時候還能獲取內(nèi)容,一旦頻繁爬取,就有可能被封IP,導致一段時間無法訪問。那么,為了防止這種情況發(fā)生,我們就要設(shè)置代理來解決,這里就用到了proxies參數(shù)。
Proxy 是 Python 的一個內(nèi)置模塊,它可以用來創(chuàng)建代理對象,用于在網(wǎng)絡上轉(zhuǎn)發(fā)請求和響應。在 Python 中,可以使用 requests 庫來發(fā)送 HTTP 請求,并使用 proxies 參數(shù)來指定代理對象。
下面是一個示例代碼,演示如何使用 proxies 參數(shù)來設(shè)置代理對象:
import requests
# 創(chuàng)建一個 requests 對象
r = requests.get('http://example.com')
# 設(shè)置代理對象
r.proxies = {'http': 'http://proxy.example.com:80'}
# 發(fā)送請求并獲取響應
response = r.send()
# 打印響應狀態(tài)碼和頭部信息
print(response.status_code)
print(response.headers)
在上面的代碼中,我們首先創(chuàng)建了一個 requests 對象,并使用 proxies 參數(shù)設(shè)置了一個代理對象。在這個例子中,我們將 http 請求轉(zhuǎn)發(fā)到了一個名為 proxy.example.com 的代理服務器上,并將代理服務器的地址設(shè)置為 80。
然后,我們使用 send 方法發(fā)送了一個 HTTP GET 請求,并將代理對象作為參數(shù)傳遞給了它。最后,我們使用 response.status_code 和 response.headers 屬性打印了響應狀態(tài)碼和頭部信息。
??5.超時設(shè)置
在網(wǎng)路不好的時候,或者服務器響應太慢,甚至有時候還會報錯,為了防止服務器不能及時響應,我們可以設(shè)置一個超時設(shè)置,這里就用到了timeout參數(shù)。
response = requests.get('http://www.baidu.com',timeout= 30)request 對象的 timeout 屬性用于設(shè)置請求超時時間。默認情況下,timeout 屬性的值為 60,表示請求超時時間為 60 秒。如果需要更改超時時間,可以將其設(shè)置為一個更小的值,例如 30,表示請求超時時間為 30 秒。
如果需要在請求發(fā)送后立即返回一個響應,可以將 timeout 屬性設(shè)置為 0。這將使 timeout 屬性的值為 None,表示請求超時時間為 永遠。
??總結(jié)
今天我們更深層次的來學習requests。我們看看高級一點的操作,比如講文件上傳,cookies設(shè)置,代理設(shè)置之類的。下一篇,我們就來說說正則表達式的相關(guān)知識點。
到此這篇關(guān)于Python之requests的使用(二)的文章就介紹到這了,更多相關(guān)Python requests使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas將DataFrame的幾列數(shù)據(jù)合并成為一列
本文主要介紹了pandas將DataFrame的幾列數(shù)據(jù)合并成為一列,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Kmeans均值聚類算法原理以及Python如何實現(xiàn)
這個算法中文名為k均值聚類算法,首先我們在二維的特殊條件下討論其實現(xiàn)的過程,方便大家理解。2020-09-09
python實現(xiàn)基于SVM手寫數(shù)字識別功能
這篇文章主要為大家詳細介紹了python實現(xiàn)基于SVM手寫數(shù)字識別功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
Python實現(xiàn)的遞歸神經(jīng)網(wǎng)絡簡單示例
這篇文章主要介紹了Python實現(xiàn)的遞歸神經(jīng)網(wǎng)絡,是一篇摘錄自github代碼片段的文章,涉及Python遞歸與數(shù)學運算相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python實現(xiàn)人性化顯示金額數(shù)字實例詳解
在本篇內(nèi)容里小編給大家整理了關(guān)于python實現(xiàn)人性化顯示金額數(shù)字實例內(nèi)容,需要的朋友們可以參考下。2020-09-09

