---恢復內容開始---
注:學習中國大學mooc 嵩天課程 的學習筆記
request的七個主要方法
request.request() 構造一個請求用以支撐其他基本方法
request.get(url,params=None,**kwarg) 12個參數 獲取html的主要方法,對應於http的GET
request.head(url,**kwargs) 13個參數 獲取網頁頭信息的方法,對應於http的head
request.post(url,data=None,json=None,**kwarg)11個采納數 向網頁中提交post請求的方法,對應於http中的post
requset.put(url,data,**kwarg) 向網頁中提交put請求的方法,對應於http中的put
request.patch(url,data,**kwarg) 向http網頁中提交局部修改請求,對應於http中的patch
request.delete(url,**kwarg) 向http網頁中提交局部修改請求,對應於http中的delete
1.request.get(url,parm,更多參數)
r=requests.get(rul)
先構造一個request對象
返回一個response對象(包含爬蟲返回的內容)
response 對象的五個屬性
1 r.status_code 狀態碼 200表示連接成功 404表示連接失敗 不是200都是失敗的
2 r.text 以字符串的形式返回url對應的網絡內容
3 r.encoding 從http header 中猜測相應內容的編碼方式// 從header 中的charset字段 中找編碼方式 如果沒有 認為是 ISO-8859-1(無法解析中文)
4 r.apparent_encoding 從內容中分析出相應內容的編碼方式(備選編碼方式)(更加准確)
5 r.content http 相應內容的二進制形式
6.r.headers 返回頭部信息
#可以賦值 r.encoding="utf-8" 然后用 r.text 來讀取
2 理解Request 庫的異常
request.ConnnectionError DNS查詢失敗 拒絕鏈接
request.HTTPError HTTP錯誤異常
request.URLRequired URL缺失異常
request.TooManyRedirects 超過最大重定向次數。產生重定向異常
request.ConnectTimeout 連接服務器超市異常
request.Timeout 請求RUL超市 產生超時異常
r.raise_for_status() [response 對象的方法] 如果r狀態碼不是200 引發 HTTPError 異常
3.http 協議
http hypertest transfer Protocol
url格式 : URL格式
http://host[:port][path]
host 合法的internet主機域名或IP地址
port 端口號,缺省端口為80
path 請求資源的路徑
http://www.bit.edu.cn
http://220.181.111.188/duty
URL 是通過HTTP協議存取資源的Internet路徑
1 http 協議對資源的操作
GET 請求URL位置的資源
HEAD 請求獲取URL位置資源的相應信息報告,即獲得該資源的頭部信息
POST 請求向URL位置的資源后附加新的信息
PUT 請求向URL位置存儲一個資源,覆蓋原URL位置的資源
PATCH 請求更新局部的URL位置資源,即改變該處的資源部分內容
DELETE 請求刪除URL位置的資源
注:與request 的方法一一對應
2 一些簡單操作
1 post 方法
payload={"key":"value1","key2":"value2"}
r=request.post("http://baabala.com",data=payload)
print(r.text)
{
}
使用post 一個字典 自動編碼為form 表單
payload={"ACB"}
r=request.post("http://baabala.com",data=payload)
print(r.text)
{
}
使用post 一個字典 自動編碼為data
使用post 一個字符串 自動編碼為form 表單
put 方法也一樣,但是會自動覆蓋原先的內容
4 requests 詳解
requset.requst(method,url,**kwargs)
method : 請求方式
url :獲取頁面的鏈接
**kwargs 其他的參數(13)
method(7種)就是操作
**kwargs
1.params 字典或者字節序列,作為參數增加到url中
例:kv={"key1":"value1","key2":value2"}
r=requests.requset("GET","http://pythonoo123.io/ws",params=kv)
print(r.url)
http://python123.io/ws?key1=value1&key2=value2
2.data 字典字節序列或者文件對象,作為request的內容
3.josn JSON格式的數據作為request的內容
4.header 字典 HTTP 定制頭
例: hd={"user-agent":"Chrome/10"}
r=request.request("POST","http://pythonoo123.io/ws",headers=hd)
5.cookies :字典或Cookiejar
6.auth :元祖,支持HTTP認證功能
7.file 字典類型,傳輸文件
例:fs={"file":open(open(“data.xls”,"rb"))}
r=requests.request("post","http://pythonoo123.io/ws",files=fs)
8.timeout 超時時間,一秒為單位
9.proxies:字典類型,設定代理服務器,可以增加登錄認證
例: pxs{"http":"http://user:pass@10.10.1.1234","https":"https://10.10.10.1:4321"}
r=request.request("GET",""http://pythonoo123.io/ws",proxies=pxs)利用其設置代理
10.allow_redirects: True/False,默認為True,重定向開關,是否允許對url重定向
11.stream: True/False,默認為True 獲取內容立即下載開關
12.verify:True/False,默認為True,認證SSL 證書開關
13.cert 保存本地 SSL 路徑字段
---恢復內容結束---
