您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Python之requests如何使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
我們知道requests可以模擬提交一些數(shù)據(jù),除此之外。有的網(wǎng)站需要我們上傳文件,我們用requests同樣也可以實(shí)現(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ùn)行一下程序,我們看有什么效果。
我們可以看到響應(yīng)里面包含了files的這個(gè)字段,而form這個(gè)字段是空的,這證明了文件上傳部分會(huì)單獨(dú)有一個(gè)files字段來(lái)標(biāo)識(shí)。
我們可以用cookies來(lái)維持登錄狀態(tài),在瀏覽器里面,在開發(fā)者工具里面,我們可以找到cookies字段,我們可以直接復(fù)制即可。
我們將cookies設(shè)置到headers里面,然后,發(fā)送請(qǐng)求,就可以登錄了。示例代碼如下:
那么什么是SSL證書呢?
SSL證書是一種數(shù)字證書,是一種電子副本,類似于駕駛證、護(hù)照和營(yíng)業(yè)執(zhí)照的電子副本。它由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)(CA)簽發(fā),并且客戶端和服務(wù)器都必須驗(yàn)證證書的有效性。
SSL證書的主要功能是提供服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密。它可以確保數(shù)據(jù)在傳輸過(guò)程中不被竊取或篡改,并且可以增強(qiáng)安全性,防止未經(jīng)授權(quán)的人員訪問(wèn)服務(wù)器。
在SSL證書驗(yàn)證過(guò)程中,客戶端和服務(wù)器都需要驗(yàn)證證書的有效性。
此外,requests還有證書驗(yàn)證的功能,當(dāng)發(fā)送HTTP請(qǐng)求的時(shí)候,它會(huì)檢查SSL證書,我們可以使用verify參數(shù)控制是否檢查此證書。一般默認(rèn)是打開的。
那我們的代碼怎么寫呢?
response = requests.get('http://www.baidu.com',verify = False)
對(duì)于一些網(wǎng)站,在測(cè)試的時(shí)候還能獲取內(nèi)容,一旦頻繁爬取,就有可能被封IP,導(dǎo)致一段時(shí)間無(wú)法訪問(wèn)。那么,為了防止這種情況發(fā)生,我們就要設(shè)置代理來(lái)解決,這里就用到了proxies參數(shù)。
Proxy 是 Python 的一個(gè)內(nèi)置模塊,它可以用來(lái)創(chuàng)建代理對(duì)象,用于在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)請(qǐng)求和響應(yīng)。在 Python 中,可以使用 requests 庫(kù)來(lái)發(fā)送 HTTP 請(qǐng)求,并使用 proxies 參數(shù)來(lái)指定代理對(duì)象。
下面是一個(gè)示例代碼,演示如何使用 proxies 參數(shù)來(lái)設(shè)置代理對(duì)象:
import requests # 創(chuàng)建一個(gè) requests 對(duì)象 r = requests.get('http://example.com') # 設(shè)置代理對(duì)象 r.proxies = {'http': 'http://proxy.example.com:80'} # 發(fā)送請(qǐng)求并獲取響應(yīng) response = r.send() # 打印響應(yīng)狀態(tài)碼和頭部信息 print(response.status_code) print(response.headers)
在上面的代碼中,我們首先創(chuàng)建了一個(gè) requests 對(duì)象,并使用 proxies 參數(shù)設(shè)置了一個(gè)代理對(duì)象。在這個(gè)例子中,我們將 http 請(qǐng)求轉(zhuǎn)發(fā)到了一個(gè)名為 proxy.example.com 的代理服務(wù)器上,并將代理服務(wù)器的地址設(shè)置為 80。
然后,我們使用 send 方法發(fā)送了一個(gè) HTTP GET 請(qǐng)求,并將代理對(duì)象作為參數(shù)傳遞給了它。最后,我們使用 response.status_code 和 response.headers 屬性打印了響應(yīng)狀態(tài)碼和頭部信息。
在網(wǎng)路不好的時(shí)候,或者服務(wù)器響應(yīng)太慢,甚至有時(shí)候還會(huì)報(bào)錯(cuò),為了防止服務(wù)器不能及時(shí)響應(yīng),我們可以設(shè)置一個(gè)超時(shí)設(shè)置,這里就用到了timeout參數(shù)。
response = requests.get('http://www.baidu.com',timeout= 30)
request 對(duì)象的 timeout 屬性用于設(shè)置請(qǐng)求超時(shí)時(shí)間。默認(rèn)情況下,timeout 屬性的值為 60,表示請(qǐng)求超時(shí)時(shí)間為 60 秒。如果需要更改超時(shí)時(shí)間,可以將其設(shè)置為一個(gè)更小的值,例如 30,表示請(qǐng)求超時(shí)時(shí)間為 30 秒。
如果需要在請(qǐng)求發(fā)送后立即返回一個(gè)響應(yīng),可以將 timeout 屬性設(shè)置為 0。這將使 timeout 屬性的值為 None,表示請(qǐng)求超時(shí)時(shí)間為 永遠(yuǎn)。
“Python之requests如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。