Requests 庫入門

The?Website?is?the?API

Requests 庫的安裝

windows環(huán)境下:

以管理員身份運行”cmd茧球,執(zhí)行 pip install requests

安裝完成測試:

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)于HTML的POST

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

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

requests.delete()? ? ? ? ? ? ? ? ? ? ? ? 向HTML網(wǎng)頁提交刪除請求對應(yīng)于HTML的DELETE

requests.get()

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

??url : 擬獲取頁面的url鏈接

??params : url中的額外參數(shù)惭适,字典或字節(jié)流格式,可選

? **kwargs: 12個控制訪問的

源代碼:

Requests庫的兩個重要對象:

Response對象包含爬蟲返回的內(nèi)容

Response對象示例:

Response對象包含服務(wù)器返回的所有信息递递,也包含請求的Requests信息

Response? 對象的屬性

屬性? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?說明

r.status_code ????????????????????HTTP請求的返回狀態(tài)喷橙,200表示連接成功,404表示失敗

r.text HTTP????????????????????????響應(yīng)內(nèi)容的字符串形式登舞,即贰逾,url對應(yīng)的頁面內(nèi)容

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

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

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

理解Response的編碼:

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

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

r.encoding? ? ? ? ? ? ? ? ? ? 如果header中不存在charset,則認為編碼為ISO‐8859‐1

r.text????????????????????????????根據(jù)r.encoding顯示網(wǎng)頁內(nèi)容

r.apparent_encoding? ? ? ?根據(jù)網(wǎng)頁內(nèi)容分析出的編碼方式

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以看作是r.encoding的備選

理解requests 庫的異常:

網(wǎng)絡(luò)連接有風(fēng)險逊躁,異常處理很重要

異常? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?說明

requests.ConnectionError? ? ?網(wǎng)絡(luò)連接錯誤異常似踱,如DNS查詢失敗隅熙、拒絕連接requests.HTTPError HTTP錯誤異常

requests.URLRequired? ? ? ? ?URL缺失異常

equests.TooManyRedirects? ?超過最大重定向次數(shù)稽煤,產(chǎn)生重定向異常

requests.ConnectTimeout? ? ? 連接遠程服務(wù)器超時異常

requests.Timeout? ? ? ? ? ? ? ? ? ? 請求URL超時,產(chǎn)生超時

理解Response 對象的異常

r.raise_for_status() ????????????????如果不是200產(chǎn)生異常 requests.HTTPError

r.raise_for_status()在方法內(nèi)部判斷r.status_code是否等于200囚戚,不需要增加額外的if語句酵熙,該語句便于利用try‐except進行異常處理

爬取網(wǎng)頁的通用代碼框架

HTTP協(xié)議

HTTP 協(xié)議 (Hypertext Transfer Protocol)? ????超文本傳輸協(xié)議

HTTP是一個基于“請求與響應(yīng)”模式的、無狀態(tài)的應(yīng)用層協(xié)議

HTTP協(xié)議采用URL作為定位網(wǎng)絡(luò)資源的標(biāo)識驰坊,URL格式如下:

? ??????????????http://host[:port][path]

????host: 合法的Internet主機域名或IP地址

????port: 端口號匾二,缺省端口為80

????path: 請求資源的路徑

HTTP URL實例:

????http://www.bit.edu.cn

????http://220.181.111.188/duty

HTTP URL:

URL是通過HTTP協(xié)議存取資源的Internet路徑,一個URL對應(yīng)一個數(shù)據(jù)資源

HTTP協(xié)議對資源的操作:?????

方法? ? ? ? ? ? ? ? ? ? ? ?說明

GET? ? ? ? ? ? ? ? ? ? ? ?請求獲取URL位置的資源

HEAD? ? ? ? ? ? ? ? ? ? 請求獲取URL位置資源的響應(yīng)消息報告拳芙,即獲得該資源的頭部信息

POST? ? ? ? ? ? ? ? ? ? 請求向URL位置的資源后附加新的數(shù)據(jù)

PUT? ? ? ? ? ? ? ? ? ? ? ?請求向URL位置存儲一個資源察藐,覆蓋原URL位置的資源

PATCH? ? ? ? ? ? ? ? ? ?請求局部更新URL位置的資源,即改變該處資源的部分內(nèi)容

DELETE???????????????? 請求刪除URL位置存儲的

HTTP協(xié)議對資源的操作:

通過URL和命令管理資源舟扎,操作獨立無狀態(tài)分飞,網(wǎng)絡(luò)通道及服務(wù)器成為了黑盒子

理解 PATCH和PUT的區(qū)別:

假設(shè)URL位置有一組數(shù)據(jù)UserInfo包括UserIDUserName等20個字段

需求:用戶修改了UserName,其他不變

? 采用PATCH睹限,僅向URL提交UserName的局部更新請求

? 采用PUT譬猫,必須將所有20個字段一并提交到URL讯檐,未提交字段被刪除

PATCH的最主要好處:節(jié)省網(wǎng)絡(luò)帶寬

HTTP 協(xié)議? Requests庫

HTTP協(xié)議方法???????????? Requests庫方法 ????????????功能一致性

GET???????????????????????????????? requests.get() ????????????????????一致

HEAD ????????????????????????????requests.head()? ? ? ? ? ? ? ? ? ?一致

POST???????????????????????????? requests.post()? ? ? ? ? ? ? ? ? ? ?一致

PUT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? requests.put()? ? ? ? ? ? ? ? ? ? ? 一致

PATCH? ? ? ? ? ? ? ? ? ? ? ? ? requests.patch()? ? ? ? ? ? ? ? ? ? 一致

DELETE ????????????????????????requests.delete() ????????????????一致

requests庫的 heade() 方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市染服,隨后出現(xiàn)的幾起案子别洪,更是在濱河造成了極大的恐慌,老刑警劉巖柳刮,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挖垛,死亡現(xiàn)場離奇詭異,居然都是意外死亡秉颗,警方通過查閱死者的電腦和手機晕换,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來站宗,“玉大人闸准,你說我怎么就攤上這事∩颐穑” “怎么了夷家?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敏释。 經(jīng)常有香客問我库快,道長,這世上最難降的妖魔是什么钥顽? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任义屏,我火速辦了婚禮,結(jié)果婚禮上蜂大,老公的妹妹穿的比我還像新娘闽铐。我一直安慰自己,他們只是感情好奶浦,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布兄墅。 她就那樣靜靜地躺著,像睡著了一般澳叉。 火紅的嫁衣襯著肌膚如雪隙咸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天成洗,我揣著相機與錄音五督,去河邊找鬼。 笑死瓶殃,一個胖子當(dāng)著我的面吹牛充包,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碌燕,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼误证,長吁一口氣:“原來是場噩夢啊……” “哼继薛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愈捅,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤遏考,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蓝谨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灌具,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年譬巫,在試婚紗的時候發(fā)現(xiàn)自己被綠了咖楣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡芦昔,死狀恐怖诱贿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咕缎,我是刑警寧澤珠十,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站凭豪,受9級特大地震影響焙蹭,放射性物質(zhì)發(fā)生泄漏菊卷。R本人自食惡果不足惜祭芦,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钧嘶。 院中可真熱鬧帖努,春花似錦撰豺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刊驴。三九已至姿搜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捆憎,已是汗流浹背舅柜。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躲惰,地道東北人致份。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像础拨,于是被迫代替她去往敵國和親氮块。 傳聞我的和親對象是個殘疾皇子绍载,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

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

  • 7個主要方法 Response對象的屬性 r.encoding:如果header中不存在charset,則認為編碼...
    擼擼很乖張閱讀 982評論 0 0
  • 1 Requests 庫的安裝 Win 平臺:“以管理員身份運行” cmd滔蝉,執(zhí)行 pip install requ...
    汪小魚閱讀 620評論 0 4
  • 安裝第三方庫requests庫 測試requsets庫 顯示200表示測試正常 requests方法是基礎(chǔ)方法击儡,其...
    67214d57b4aa閱讀 131評論 0 0
  • @[toc] requests庫安裝 Windows平臺 測試requests的安裝 requests庫的7個主要...
    Cache_wood閱讀 188評論 0 1
  • 網(wǎng)絡(luò)爬蟲就是提取網(wǎng)頁的信息。網(wǎng)絡(luò)爬蟲的原則就是謹記“the website is API”,就是我們所面對的對象和...
    六尺帳篷閱讀 2,519評論 0 18