requests與urllib.request


requests很明顯,在寫法上與urllib.request不同,前者多一個 S.
導入包時:
import requests
import urllib.request
urllib.request請求模塊,用於打開和讀取url
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
response.read()可以獲取到網頁的內容
timeout參數的使用在某些網絡情況不好或者服務器端異常的情況會出現請求慢的情況,或者請求異常,有時也用來解決反爬,控制爬行速度。
response.status,response.getheaders()【response.headers】【response.info()】獲取狀態碼以及頭部信息。response.read()獲得的是響應體的內容.
urlopen()只能用於簡單的請求,它無法添加header信息。
urllib.request.Request(url) 注意大寫。
使用data參數;
data = urllib.parse.urlencode(dict).encode(‘utf-8’)
使用data參數如果要傳 必須傳bytes(字節流) 類型的,如果是一個字典,先用 urllib.parse.urlencode() 編碼。
request = urllib.request.Request(url = url,data = data,headers = headers,method = ‘POST’)
2.req = urllib.request.Request(url=url,data=data,method=‘POST’)
req.add_header(‘User-Agent’,'Mozilla/5.0) 添加頭部信息
rulllib.request.ProxyHandler()設置代理,網站會檢測某一段時間某個IP 的訪問次數,訪問次數過多,會禁止訪問,使用代理安全系數也會相應提高。
urllib.error:包含提出有例外的urllib.request
urllib.parse:用於解析url
urllib.robotparser:用於解析robots.txt文件。
requests完全滿足網絡爬蟲的需求,他是在urllib基礎上進一步封裝,具備urllib的全部功能。

安裝 pip install requests
基於http的post,get請求
r = requests.get(url, params=d) 參數d表示值為字符串的字典,d不是必須的
r = requests.post(url,data=data)post請求需 設置請求參數data
請求對象response相應內容
r.status_code:響應狀態碼
r.raw:原始響應體,使用r.raw.read()讀取
r.content:字節方式的響應體,需要進行解碼
r.text:字符串形式的響應體,會自動根據響應頭部的字符編碼進行解碼
r.headers:以字典對象存儲服務器響應頭,字典見鍵不區分大小寫,若鍵不存在返回none。
r.json():Requests中內置的json解碼器
r.raise_for_status():請求失敗,拋出異常
r.url:獲取請求鏈接
r.cookies:獲取請求后的cookie
r.encoding:獲取編碼格式
---------------------
作者:秋瑾先生


免責聲明!

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



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