requests与urllib.request
生活随笔
收集整理的這篇文章主要介紹了
requests与urllib.request
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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:獲取編碼格式
轉載于:https://www.cnblogs.com/qinchao0317/p/11115680.html
總結
以上是生活随笔為你收集整理的requests与urllib.request的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:保留小数点后四位,不足自动补0
- 下一篇: .NET开发中 springMVC+NH