Python Requests 基礎(chǔ)入門(mén)
首先,Python 標(biāo)準(zhǔn)庫(kù)中的 urllib2 模塊提供了你所需要的大多數(shù) HTTP 功能,但是它的 API 不友好。它是為另一個(gè)時(shí)代、另一個(gè)互聯(lián)網(wǎng)所創(chuàng)建的。它需要巨量的工作,甚至包括各種方法覆蓋,來(lái)完成最簡(jiǎn)單的任務(wù),所以學(xué)習(xí)reuqests模塊,比較簡(jiǎn)潔好用(以后慢慢會(huì)學(xué)習(xí)scapy,更強(qiáng)大的庫(kù)),安裝就不用說(shuō)了
1 導(dǎo)入模塊
>>> import requests
2 直觀感受一下發(fā)送請(qǐng)求的簡(jiǎn)潔
>>> r = requests.get('your url')
>>> r = requests.post('your url')
#put delete head options方法也是這種用法
3 為url傳遞參數(shù)
>>> url_params = {'key':'value'} #字典傳遞參數(shù),如果值為None的鍵不會(huì)被添加到url中
>>> r = requests.get('your url',params = url_params)
>>> print(r.url)
your url?key=value
4 響應(yīng)的內(nèi)容
>>> r.encoding #獲取當(dāng)前的編碼
>>> r.encoding = 'utf-8' #設(shè)置編碼
>>> r.text #以encoding解析返回內(nèi)容
>>> r.content #以字節(jié)形式(二進(jìn)制)返回
>>> r.json() #以json形式返回,前提返回的內(nèi)容確保是json格式的,不然解析出錯(cuò)會(huì)拋異常
5 定制頭和coookie信息
>>> header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0'}
>>> cookie = {'key':'value'}
>>> r = requests.get/post('your url',headers=header,cookies=cookie)
6 發(fā)送post數(shù)據(jù)請(qǐng)求
>>> send = {'key':'value'}
>>> r = requests.post('your url',data = send) # 如果你傳遞一個(gè) string 而不是一個(gè)dict ,那么數(shù)據(jù)會(huì)被直接發(fā)布出去,這個(gè)也可以上傳文件
7 響應(yīng)狀態(tài)碼
>>> r.status_code #如果不是200,可以使用 r.raise_for_status() 拋出異常
8 響應(yīng)
>>> r.headers #返回字典類型,頭信息
# r.requests.headers 返回發(fā)送到服務(wù)器的頭信息
>>> r.cookies #返回cookie
>>> r.history #返回重定向信息,當(dāng)然可以在請(qǐng)求是加上allow_redirects = false 阻止重定向
9 超時(shí)
>>> r = requests.get('url',timeout=1)#設(shè)置秒數(shù)超時(shí),僅對(duì)于連接有效
10 會(huì)話對(duì)象,讓你能夠跨請(qǐng)求保持某些參數(shù)
>>> s = requests.Session()
>>> s.auth = ('auth','passwd')
>>> s.headers = {'key':'value'}
>>> r = s.get('url')
>>> r1 = s.get('url1')
11 代理
>>> proxies = {'http':'ip1','https':'ip2' }
>>> requests.get('url',proxies=proxies)
腳本之家推薦閱讀:
相關(guān)文章
Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò)
這篇文章主要為大家介紹了Python解決MySQL數(shù)據(jù)處理從SQL批量刪除報(bào)錯(cuò),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python實(shí)現(xiàn)點(diǎn)云投影到平面顯示
今天小編就為大家分享一篇Python實(shí)現(xiàn)點(diǎn)云投影到平面顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python全局變量與global關(guān)鍵字常見(jiàn)錯(cuò)誤解決方案
這篇文章主要介紹了Python全局變量與global關(guān)鍵字常見(jiàn)錯(cuò)誤解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10五個(gè)Jupyter?Notebook實(shí)用魔法命令分享
Jupyter?Notebook是一個(gè)開(kāi)源的交互式編程環(huán)境,用于創(chuàng)建和共享包含實(shí)時(shí)代碼、文本等,本文主要來(lái)和大家分享一些有趣的Jupyter?Notebook魔法命令,需要的可以參考一下2023-07-07線程和進(jìn)程的區(qū)別及Python代碼實(shí)例
這篇文章主要介紹了線程和進(jìn)程的區(qū)別及Python代碼實(shí)例,本文給出了一個(gè)python的腳本讓一個(gè)進(jìn)程中運(yùn)行兩個(gè)線程,需要的朋友可以參考下2015-02-02利用Python實(shí)現(xiàn)自動(dòng)工作匯報(bào)的腳本分享
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)一個(gè)自動(dòng)工作匯報(bào)的腳本,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-08-08