<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在後期滲透測試中,經常會遇到需要向第三方傳送http請求的場景,python中的requests庫可以很好的滿足這一要求,Requests模組是一個用於網路請求的模組,主要用來模擬瀏覽器發請求。其實類似的模組有很多,比如urllib,urllib2,httplib,httplib2,他們基本都提供相似的功能。但是這些模組都複雜而且差不多過時了,requests模組簡單強大高效,使得其在眾多網路請求模組中脫引而出。
環境安裝:pip install requests
基本步驟:.
1.匯入模組:import requests
2.指定url:url = "........"
3.基於requests模組傳送請求:res = requests.get(url)
4.獲取響應物件中的資料值:print(res.'...')
5.持久化儲存(不是必須的)
(一)八種請求方式:GET、 POST、 HEAD、OPTIONS、 PUT、 DELETE、 TRACE、 CONNECT。
這裡我只詳細介紹get和post:
1.GET
用於獲取資源,當採用 GET 方式請求指定資源時, 被存取的資源經伺服器解析後立即返回響應內容。通常以 GET 方式請求特定資源時, 請求中不應該包含請求體,所有需要向被請求資源傳遞的資料都應該通過 URL 向伺服器傳遞。
2. POST
POST 動作:用於提交資料, 當採用 POST 方式向指定位置提交資料時,資料被包含在請求體中,伺服器接收到這些資料後可能會建立新的資源、也可能會更新已有的資源。同時 POST 方式的請求體可以包含非常多的資料,而且格式不限。因此 POST 方式用途較為廣泛,幾乎所有的提交操作都可以使用 POST 方式來完成。
注:雖然用 GET 方式也可以提交資料,但一般不用 GET 方式而是用 POST 方式。在 HTTP協定中,建議 GET 方式只用來獲取資料,而 POST 方式則用來提交資料(而不是獲取資料)。
get方式和post方式區別:
簡單來說,本質上區別:
- GET產生 一個 TCP封包
- POST產生 兩個 TCP封包
對於GET方式的請求,瀏覽器會把http header和data一併行送出去,伺服器響應200(返回資料);
而對於POST,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。
(二)http常見請求引數
url:請求url地址
headers:請求頭
data:傳送編碼為表單形式的資料
params:查詢字串
host:請求web伺服器的域名地址
User-Agent:HTTP使用者端執行的瀏覽器型別的詳細資訊。通過該頭部資訊,web伺服器可以判斷到當前HTTP請求的使用者端瀏覽器類別。
Accept:指定使用者端能夠接收的內容型別,內容型別中的先後次序表示使用者端接收的先後次序。
Accept-Encoding:指定使用者端瀏覽器可以支援的web伺服器返回內容壓縮編碼型別。
Accept-Language:指定HTTP使用者端瀏覽器用來展示返回資訊所優先選擇的語言
Connection:表示是否需要持久連線。如果web伺服器端看到這裡的值為“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1預設進行持久連線),表示連線持久有效,是不會斷開的
cookie:HTTP請求傳送時,會把儲存在該請求域名下的所有cookie值一起傳送給web伺服器。
Refer:包含一個URL,使用者從該URL代表的頁面出發存取當前請求的頁面
舉例說明:爬取我個人網站的資料
import requests #匯入request模組 url = "http://42.192.212.170/" #指定url為我個人的網站 r = requests.get(url) #基於request模組給我個人url網站傳送請求 print (r.url) #獲取響應包地址 print (r.status_code) #獲取響應包的狀態碼 print (r.headers) #獲取響應包的頭部資訊 print (len(r.text)) #獲取以文字形式下響應包的長度 print (r.encoding) #獲取網頁編碼方式 print (r.cookies) #獲取響應包的cookie值 print (r.content) #以位元組形式返回響應體,會自動解碼成gzip和deflate壓縮
輸出結果:
當然也可以用下面幾種請求方法:
1.requests.post(“http://httpbin.org/post”) # POST請求
2.requests.put(“http://httpbin.org/put”) # PUT請求
3.requests.delete(“http://httpbin.org/delete”) # DELETE請求
4.requests.head(“http://httpbin.org/get”) # HEAD請求
5.requests.options(“http://httpbin.org/get” ) # OPTIONS請求
requests響應引數說明:
r.encoding #獲取當前的編碼 r.encoding = 'utf-8' #設定編碼 r.text #以encoding解析返回內容。字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼。 r.content #以位元組形式(二進位制)返回。位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。 r.headers #以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回 r.status_code #響應狀態碼
舉例說明:
import requests #匯入request模組 r1 = requests.get("http://42.192.212.170/",params={'s':'1'} ) #params字串傳參變數s為1 print (r1.url) payload1 = {'s':'1'} #設定payload參變數s為1 r2 = requests.get("http://42.192.212.170/",params=payload1) #將params設為payload1 print (r2.url) payload2 = {'key1':"value1",'key2':'value2'} #設定payload參變數key1為value1並且變數key2為value2 r3 = requests.get("http://42.192.212.170/",params=payload2) #params設為payload2 print (r3.url)
輸出結果:
到此這篇關於python爬蟲之request模組的文章就介紹到這了,更多相關python爬蟲之request模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45