Python網絡爬蟲與信息提取[request庫的應用](單元一)


---恢復內容開始---

注:學習中國大學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 路徑字段

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM