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)
我們運行一下程序,我們看有什么效果。
我們可以看到響應(yīng)里面包含了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ā),并且客戶端和服務(wù)器都必須驗證證書的有效性。
- SSL證書的主要功能是提供服務(wù)器身份驗證和數(shù)據(jù)傳輸加密。它可以確保數(shù)據(jù)在傳輸過程中不被竊取或篡改,并且可以增強安全性,防止未經(jīng)授權(quán)的人員訪問服務(wù)器。
- 在SSL證書驗證過程中,客戶端和服務(wù)器都需要驗證證書的有效性。
此外,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)絡(luò)上轉(zhuǎn)發(fā)請求和響應(yīng)。在 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ā)送請求并獲取響應(yīng) response = r.send() # 打印響應(yīng)狀態(tài)碼和頭部信息 print(response.status_code) print(response.headers)
在上面的代碼中,我們首先創(chuàng)建了一個 requests 對象,并使用 proxies 參數(shù)設(shè)置了一個代理對象。在這個例子中,我們將 http 請求轉(zhuǎn)發(fā)到了一個名為 proxy.example.com 的代理服務(wù)器上,并將代理服務(wù)器的地址設(shè)置為 80。
然后,我們使用 send 方法發(fā)送了一個 HTTP GET 請求,并將代理對象作為參數(shù)傳遞給了它。最后,我們使用 response.status_code 和 response.headers 屬性打印了響應(yīng)狀態(tài)碼和頭部信息。
??5.超時設(shè)置
在網(wǎng)路不好的時候,或者服務(wù)器響應(yīng)太慢,甚至有時候還會報錯,為了防止服務(wù)器不能及時響應(yīng),我們可以設(shè)置一個超時設(shè)置,這里就用到了timeout參數(shù)。
response = requests.get('http://www.baidu.com',timeout= 30)
request 對象的 timeout 屬性用于設(shè)置請求超時時間。默認情況下,timeout 屬性的值為 60,表示請求超時時間為 60 秒。如果需要更改超時時間,可以將其設(shè)置為一個更小的值,例如 30,表示請求超時時間為 30 秒。
如果需要在請求發(fā)送后立即返回一個響應(yīng),可以將 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)文章
Python光學仿真實現(xiàn)波長與顏色之間對應(yīng)關(guān)系示例解析
這篇文章主要為大家介紹了Python光學仿真實現(xiàn)波長與顏色之間對應(yīng)關(guān)系的示例解析,有需要的我朋友可以借鑒參考下,希望能夠有所幫助2021-10-10