Request庫——Python實(shí)現(xiàn)的簡單易用的HTTP庫

Requests —— Python實(shí)現(xiàn)的簡單易用的HTTP庫

Python的標(biāo)準(zhǔn)庫中自帶一個(gè)urllib模塊雹仿,可以實(shí)現(xiàn)爬取網(wǎng)頁的功能雇卷,但是體驗(yàn)不好洪橘,而Requests庫繼承了urllib的所有特性颠区,并且使用起來更方便帚戳,所以目標(biāo)導(dǎo)向的話玷或,Requests為不二之選。

安裝
pip install requests

import requests

1.發(fā)送get請求片任,返回一個(gè)response對象
response = requests.get('http://www.baidu.com') 

2.response對象中具有一些參數(shù)
# 查看響應(yīng)內(nèi)容偏友,response.text   
# 返回的是Unicode格式的數(shù)據(jù),經(jīng)過解碼后的數(shù)據(jù)对供,
# Requests會按照自己猜測的方式進(jìn)行解碼位他,所以如果出現(xiàn)亂碼,可能就是這方面出問題來
print(response.text)

# 查看響應(yīng)內(nèi)容产场,response.content返回的bytes數(shù)據(jù)類型鹅髓,沒有經(jīng)過解碼
print(response.content)
print(response.content.decode('utf-8')) # 防止出現(xiàn)亂碼的操作——自己解碼

# 查看完整url地址
print(response.url)     #http://www.baidu.com/

# 查看Requests使用的編碼(自己猜測的方式進(jìn)行解碼)
# Requests會基于HTTP頭部對響應(yīng)的編碼作出有根據(jù)的推測。
print(response.encoding)      #ISO-8859-1  

# 查看響應(yīng)碼
print(response.status_code)   #200

3.可以在發(fā)送請求的同時(shí)京景,傳遞一些參數(shù)給http服務(wù)器  
kw = {'wd':'明星'}
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) \
           AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'}
response = requests.get('http://www.baidu.com/s',params=kw, headers=headers)
print(response.urk)   #'http://www.baidu.com/s?wd=%E6%98%8E%E6%98%9F'

4.發(fā)送post請求    data參數(shù)
response = requests.post("http://www.baidu.com/",data=data)

5.代理    proxies參數(shù)
# 根據(jù)協(xié)議類型窿冯,選擇不同的代理
proxies = {
  'http': 'xxxxx',
  'https': 'xxxxx',
}
response = requests.get("http://www.baidu.com/",proxies=proxies)

6.cookie:如果一個(gè)響應(yīng)中包含了cookie,利用cookies屬性拿到這個(gè)返回的cookie值:
resp = requests.get('http://www.baidu.com/')
print(resp.cookies)  #返回CookieJar對象
                     # <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
print(resp.cookies.get_dict())  # 返回cookie值,字典形式   {'BDORZ': '27315'}

7.session 在跨請求時(shí)候共享某些參數(shù)确徙,比如在同一個(gè)session實(shí)例發(fā)出的所有請求之間共享cookie值 
# 1醒串、 創(chuàng)建session對象,可以保存Cookie值
session = requests.Session()
# 2米愿、處理 headers
headers = {}
# 3、 需要登錄的用戶名和密碼
data = {"user_name":"user_name", "password":"xxxxx"}
# 4鼻吮、發(fā)送附帶用戶名和密碼的請求育苟,并獲取登錄后的Cookie值,保存在ssion里
session.post(xxx, data = data)
# 5椎木、 session包含用戶登錄后的Cookie值违柏,可以直接訪問那些登錄后才可以訪問的頁面
response = session.get(xxx)

8.不信任的SSL證書  verify 參數(shù)博烂,默認(rèn)為True,表示驗(yàn)證SSL證書漱竖,若是沒有安全證書禽篱,會報(bào)錯(cuò)SSLError
verify=False (解決報(bào)錯(cuò)問題)

9. json  Requests庫中有一個(gè)json函數(shù)
print(type(response.text))     #<class 'str'>
print(response.json())    效果等價(jià)   print(json.loads(response.text))
print(type(response.json()))   # <class 'dict'>

10.超時(shí)設(shè)置  防止一直卡在訪問頁面上
from requests.exceptions import ReadTimeout
try:
    response = requests.get("http://httpbin.org/get", timeout = 0.5) #設(shè)置訪問時(shí)間0.5s
    print(response.status_code)
except ReadTimeout:
    print('Timeout')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市馍惹,隨后出現(xiàn)的幾起案子躺率,更是在濱河造成了極大的恐慌,老刑警劉巖万矾,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悼吱,死亡現(xiàn)場離奇詭異,居然都是意外死亡良狈,警方通過查閱死者的電腦和手機(jī)后添,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薪丁,“玉大人遇西,你說我怎么就攤上這事⊙鲜龋” “怎么了粱檀?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阻问。 經(jīng)常有香客問我梧税,道長,這世上最難降的妖魔是什么称近? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任第队,我火速辦了婚禮,結(jié)果婚禮上刨秆,老公的妹妹穿的比我還像新娘凳谦。我一直安慰自己,他們只是感情好衡未,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布尸执。 她就那樣靜靜地躺著,像睡著了一般缓醋。 火紅的嫁衣襯著肌膚如雪如失。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天送粱,我揣著相機(jī)與錄音褪贵,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛脆丁,可吹牛的內(nèi)容都是我干的世舰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼槽卫,長吁一口氣:“原來是場噩夢啊……” “哼跟压!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歼培,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤震蒋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后丐怯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硅卢,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡县好,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年藤滥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蠢络。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡效览,死狀恐怖无切,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丐枉,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布瘦锹,位于F島的核電站籍嘹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弯院。R本人自食惡果不足惜辱士,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望听绳。 院中可真熱鬧颂碘,春花似錦、人聲如沸椅挣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠证。三九已至峡竣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間量九,已是汗流浹背适掰。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攻谁。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像弯予,于是被迫代替她去往敵國和親戚宦。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 摘要 requests是一個(gè)封裝了python自帶的urllib模塊的一個(gè)易用型模塊锈嫩,它使得程序員對發(fā)送請求和獲取...
    燈光樹影閱讀 560評論 0 0
  • request庫 目的:系統(tǒng)的分析受楼,掌握request庫 參考:http://docs.python-reques...
    量化子閱讀 617評論 0 0
  • 其實(shí)在python中還有自帶的urllib, urllib2, urllib3,而request是國外程序開發(fā)的第...
    hopevow閱讀 1,391評論 0 3
  • Request庫安裝方法 Request官網(wǎng) 使用管理員權(quán)限啟動 command控制臺(win+X 命令提示符(管...
    天道酬勤_FUN閱讀 36,377評論 0 35
  • 罕至西湖風(fēng)舞雪,卻現(xiàn)孤雁仍愛憐呼寸。 蕭條未使人閑愁艳汽,薄游玉冷意幽幽。
    蓁鹿閱讀 167評論 1 2