Python人才要具備哪些技能?requests庫(kù)有哪些技巧?Python入門簡(jiǎn)單、精通不易,因此很多人選擇專業(yè)系統(tǒng)的學(xué)習(xí)。根據(jù)各大招聘網(wǎng)站反饋的信息顯示,理論基礎(chǔ)與實(shí)戰(zhàn)經(jīng)驗(yàn)兼?zhèn)涞腜ython人才不僅就業(yè)速度快、就業(yè)薪資更高。接下來小編就給大家分享一下requests庫(kù)相關(guān)知識(shí)及使用技巧。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、松陽(yáng)ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的松陽(yáng)網(wǎng)站制作公司
requests是Python實(shí)現(xiàn)的簡(jiǎn)單易用的HTTP庫(kù),使用起來比urllib簡(jiǎn)潔很多。因?yàn)槭堑谌綆?kù),所以我們?cè)谑褂们皉equests需要cmd安裝,輸入pip install requests命令,安裝完成后import一下,正常則說明可以開始使用。
requests庫(kù)基本方法介紹:
requests.request():構(gòu)造一個(gè)請(qǐng)求,支撐一下各方法的基礎(chǔ)方法;
requests.get():獲取HTML網(wǎng)頁(yè)的主要方法,對(duì)應(yīng)于HTTP的GET;
requests.head():獲取HTML網(wǎng)頁(yè)頭信息的方法,對(duì)應(yīng)于HTTP的HEAD;
requests.post():向HTML網(wǎng)頁(yè)提交POST請(qǐng)求的方法,對(duì)應(yīng)于HTTP的POST;
requests.put():向HTML網(wǎng)頁(yè)提交PUT請(qǐng)求的方法,對(duì)應(yīng)于HTTP的PUT;
requests.patch():向HTML網(wǎng)頁(yè)提交局部修改請(qǐng)求,對(duì)應(yīng)于HTTP的PATCH;
requests.delete():向HTML頁(yè)面提交刪除請(qǐng)求,對(duì)應(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)容的二進(jìn)制形式;
r.json():HTTP響應(yīng)內(nèi)容的json形式;
r.raw:HTTP響應(yīng)內(nèi)容的原始形式;
r.encoding:返回請(qǐng)求的url;
r.encoding:從HTTP header中猜測(cè)的響應(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 :模擬獲取頁(yè)面的url連接
~params :url 中的額外參數(shù),字典或字節(jié)流格式,無需對(duì)其編碼
~**kwargs :12個(gè)控制訪問的參數(shù)
"""
import requests
data = {
"age":"22",
"name":"germey",
}
response = requests.get("http://httpbin.org/get",params=data) #給URL傳參
print(response.text)
'''Requests 會(huì)推測(cè)其編碼然后解碼,但是 HTTP 和 XML 自身可以指定編碼,這樣的話,應(yīng)該使用 r.content 獲取二進(jìn)制的內(nèi)容,然后設(shè)置 r.encoding='utf8' 為相應(yīng)的解碼。
'''
定制請(qǐng)求頭
傳遞一個(gè)dict給headers參數(shù)就可以,Requests不會(huì)基于定制header的具體情況改變自己的行為。只不過在最后的請(qǐng)求中,所有的header信息都會(huì)被傳遞進(jìn)去。
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)先級(jí)低于某些特定的信息源,例如:
如果在.netrc中設(shè)置了用戶認(rèn)證信息,使用headers=設(shè)置的授權(quán)就不會(huì)生效。而如果設(shè)置了auth=參數(shù),.netrc的設(shè)置就無效了。
如果被重定向到別的主機(jī),授權(quán) header 就會(huì)被刪除。
代理授權(quán)header會(huì)被URL提供的代理身份覆蓋掉。
在我們能判斷內(nèi)容長(zhǎng)度的情況下,header的Content-Length會(huì)被改寫。
代理設(shè)置
設(shè)置proxies參數(shù)來配置代理,同時(shí)也可以設(shè)置代理密碼認(rèn)證,還可以使用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í)吧。