爬蟲與信息提取 1-1 - Requests庫入門

你是無意穿堂風 偏偏孤倨引山洪

1進度

安裝 requests

conda install requests

http://www.python-requests.org/en/master/


# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.text)

requests 庫7個主要方法:

requests 庫7個主要方法

requests - get()

r = requests.get(url)

r = requests.get("http://www.mi.com")
get()1
get()2
get()3

requests庫

response 對象的屬性:

response 對象的屬性
status_code

理解response的編碼:

理解response的編碼

爬取網頁的通用代碼框架:

  • 網絡連接有風險
  • 異常處理很重要

理解Requests庫的異常:

Requests庫的異常1
Requests庫的異常2
# -*- coding: utf-8 -*-

import requests

def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "產生異常"

if __name__ == "__main__":
    url = "http://www.mi.com"
    print(getHTMLText(url))

HTTP協議及Requests庫方法:

Http協議:

Http協議
url
url

Http協議對資源的操作:

Http協議對資源的操作1
Http協議對資源的操作2

http協議通過url對資源定位 通過以上6個操作方法對資源進行管理 每次操作都是獨立無狀態的(兩次操作間沒有關系)


區別

Requests庫的head():

# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.headers)

Requests庫的post():

post()
# -*- coding: utf-8 -*-

import requests

payload = {'key1':'value1', 'key2':'value2'}

r = requests.post('http://httpbin.org/post', data=payload)

print(r.text)

print:

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "23", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.14.2"
  }, 
  "json": null, 
  "origin": "43.247.4.53", 
  "url": "http://httpbin.org/post"
}
data

Requests庫的put():

put()

Requests庫主要方法解析:

主要方法解析
0
1
2
3
4
5
6
7
8
9
10

get最常用!

get()

head()
post()
put()
patch()
delete()

小結:

庫入門
框架

世界上所有的追求都是因為熱愛
一枚愛編碼 愛生活 愛分享的IT信徒
— hongXkeX

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,881評論 18 139
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,123評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,100評論 25 708
  • 基礎知識 HTTP協議 我們瀏覽網頁的瀏覽器和手機應用客戶端與服務器通信幾乎都是基于HTTP協議,而爬蟲可以看作是...
    腩啵兔子閱讀 1,507評論 0 17
  • 得不到的愛情可以唱一輩子 得到的一首就夠了 凄美的悲劇可以流傳千世 圓滿的一笑便過了 我們的一生 這世界的萬世 都...
    一個人走jade閱讀 179評論 0 1