溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

學(xué)Python要具備什么技能 requests庫有哪些技巧

發(fā)布時間:2020-07-13 10:55:06 來源:網(wǎng)絡(luò) 閱讀:197 作者:千鋒鄭州 欄目:編程語言

Python人才要具備哪些技能?requests庫有哪些技巧?Python入門簡單、精通不易,因此很多人選擇專業(yè)系統(tǒng)的學(xué)習(xí)。根據(jù)各大招聘網(wǎng)站反饋的信息顯示,理論基礎(chǔ)與實戰(zhàn)經(jīng)驗兼?zhèn)涞腜ython人才不僅就業(yè)速度快、就業(yè)薪資更高。接下來小編就給大家分享一下requests庫相關(guān)知識及使用技巧。


學(xué)Python要具備什么技能 requests庫有哪些技巧



requests是Python實現(xiàn)的簡單易用的HTTP庫,使用起來比urllib簡潔很多。因為是第三方庫,所以我們在使用前requests需要cmd安裝,輸入pip install requests命令,安裝完成后import一下,正常則說明可以開始使用。

requests庫基本方法介紹:

requests.request():構(gòu)造一個請求,支撐一下各方法的基礎(chǔ)方法;

requests.get():獲取HTML網(wǎng)頁的主要方法,對應(yīng)于HTTP的GET;

requests.head():獲取HTML網(wǎng)頁頭信息的方法,對應(yīng)于HTTP的HEAD;

requests.post():向HTML網(wǎng)頁提交POST請求的方法,對應(yīng)于HTTP的POST;

requests.put():向HTML網(wǎng)頁提交PUT請求的方法,對應(yīng)于HTTP的PUT;

requests.patch():向HTML網(wǎng)頁提交局部修改請求,對應(yīng)于HTTP的PATCH;

requests.delete():向HTML頁面提交刪除請求,對應(yīng)于HTTP的DELETE;

r.states_code:獲取返回的狀態(tài)碼;

r.text / r.read():HTTP響應(yīng)內(nèi)容文本形式返回;

r.content:HTTP響應(yīng)內(nèi)容的二進制形式;

r.json():HTTP響應(yīng)內(nèi)容的json形式;

r.raw:HTTP響應(yīng)內(nèi)容的原始形式;

r.encoding:返回請求的url;

r.encoding:從HTTP header中猜測的響應(yīng)內(nèi)容編碼方式;

r.apparent_encoding:從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼方式(備選編碼方式);r.apparent_encoding:從內(nèi)容中分析出的響應(yīng)內(nèi)容編碼方式(備選編碼方式)。

requests.get( )方法

"""

r = requests.get(url,params=None,**kwargs)

~url :模擬獲取頁面的url連接

~params :url 中的額外參數(shù),字典或字節(jié)流格式,無需對其編碼

~**kwargs :12個控制訪問的參數(shù)

"""

import requests

data = {

"age":"22",

"name":"germey",

}

response = requests.get("http://httpbin.org/get",params=data) #給URL傳參

print(response.text)

'''Requests 會推測其編碼然后解碼,但是 HTTP 和 XML 自身可以指定編碼,這樣的話,應(yīng)該使用 r.content 獲取二進制的內(nèi)容,然后設(shè)置 r.encoding='utf8' 為相應(yīng)的解碼。

'''

定制請求頭

傳遞一個dict給headers參數(shù)就可以,Requests不會基于定制header的具體情況改變自己的行為。只不過在最后的請求中,所有的header信息都會被傳遞進去。

import requests

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',

}

response = requests.get("https://www.zhihu.com/expiore",headers=headers)

print(response.text)

注意: 定制 header 的優(yōu)先級低于某些特定的信息源,例如:

如果在.netrc中設(shè)置了用戶認證信息,使用headers=設(shè)置的授權(quán)就不會生效。而如果設(shè)置了auth=參數(shù),.netrc的設(shè)置就無效了。

如果被重定向到別的主機,授權(quán) header 就會被刪除。

代理授權(quán)header會被URL提供的代理身份覆蓋掉。

在我們能判斷內(nèi)容長度的情況下,header的Content-Length會被改寫。

代理設(shè)置

設(shè)置proxies參數(shù)來配置代理,同時也可以設(shè)置代理密碼認證,還可以使用SOCKS代理。

import requests

proxies= {

"http":"http://127.0.0.1:9999", (代理地址,端口)

"https":"http://127.0.0.1:8888"

}

response = requests.get("https://www.baidu.com",proxies=proxies)

print(response.text)

'''

proxies = {"http": "http://user:pass@10.10.1.10:3128/",}

proxies = {

'http': 'socks5://user:pass@host:port',

'https': 'socks5://user:pass@host:port'

}

'''

只要大家真正掌握了Python技術(shù),勝任以上崗位就不是難題。如果你想快速學(xué)習(xí)Python技術(shù),那就趕快加入到專業(yè)的學(xué)習(xí)吧。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI