requests与urllib.request
生活随笔
收集整理的這篇文章主要介紹了
requests与urllib.request
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
requests與urllib.request
- requests很明顯,在寫法上與urllib.request不同,前者多一個?S.
- 導(dǎo)入包時:
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()可以獲取到網(wǎng)頁的內(nèi)容
- timeout參數(shù)的使用在某些網(wǎng)絡(luò)情況不好或者服務(wù)器端異常的情況會出現(xiàn)請求慢的情況,或者請求異常,有時也用來解決反爬,控制爬行速度。
- response.status,response.getheaders()【response.headers】【response.info()】獲取狀態(tài)碼以及頭部信息。response.read()獲得的是響應(yīng)體的內(nèi)容.
- urlopen()只能用于簡單的請求,它無法添加header信息。
- urllib.request.Request(url)?注意大寫。
- 使用data參數(shù);
- data = urllib.parse.urlencode(dict).encode(‘utf-8’)
使用data參數(shù)如果要傳?必須傳bytes(字節(jié)流)?類型的,如果是一個字典,先用?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()設(shè)置代理,網(wǎng)站會檢測某一段時間某個IP 的訪問次數(shù),訪問次數(shù)過多,會禁止訪問,使用代理安全系數(shù)也會相應(yīng)提高。
- urllib.error:包含提出有例外的urllib.request
- urllib.parse:用于解析url
- urllib.robotparser:用于解析robots.txt文件。
requests完全滿足網(wǎng)絡(luò)爬蟲的需求,他是在urllib基礎(chǔ)上進一步封裝,具備urllib的全部功能。
- 安裝 pip install requests
- 基于http的post,get請求
- r = requests.get(url, params=d) 參數(shù)d表示值為字符串的字典,d不是必須的
- r = requests.post(url,data=data)post請求需 設(shè)置請求參數(shù)data
- 請求對象response相應(yīng)內(nèi)容
- r.status_code:響應(yīng)狀態(tài)碼
- r.raw:原始響應(yīng)體,使用r.raw.read()讀取
- r.content:字節(jié)方式的響應(yīng)體,需要進行解碼
- r.text:字符串形式的響應(yīng)體,會自動根據(jù)響應(yīng)頭部的字符編碼進行解碼
- r.headers:以字典對象存儲服務(wù)器響應(yīng)頭,字典見鍵不區(qū)分大小寫,若鍵不存在返回none。
- r.json():Requests中內(nèi)置的json解碼器
- r.raise_for_status():請求失敗,拋出異常
- r.url:獲取請求鏈接
- r.cookies:獲取請求后的cookie
- r.encoding:獲取編碼格式
轉(zhuǎn)載于:https://www.cnblogs.com/qinchao0317/p/11115680.html
總結(jié)
以上是生活随笔為你收集整理的requests与urllib.request的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:保留小数点后四位,不足自动补0
- 下一篇: .NET开发中 springMVC+NH