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