欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python爬蟲(chóng)之request模塊深入講解

 更新時(shí)間:2022年03月09日 10:45:56   作者:xiaochuhe.  
requests是python實(shí)現(xiàn)的簡(jiǎn)單易用的HTTP庫(kù),使用起來(lái)比urllib簡(jiǎn)潔很多,下面這篇文章主要給大家介紹了關(guān)于python爬蟲(chóng)之request模塊的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、概述

在后期滲透測(cè)試中,經(jīng)常會(huì)遇到需要向第三方發(fā)送http請(qǐng)求的場(chǎng)景,python中的requests庫(kù)可以很好的滿足這一要求,Requests模塊是一個(gè)用于網(wǎng)絡(luò)請(qǐng)求的模塊,主要用來(lái)模擬瀏覽器發(fā)請(qǐng)求。其實(shí)類(lèi)似的模塊有很多,比如urllib,urllib2,httplib,httplib2,他們基本都提供相似的功能。但是這些模塊都復(fù)雜而且差不多過(guò)時(shí)了,requests模塊簡(jiǎn)單強(qiáng)大高效,使得其在眾多網(wǎng)絡(luò)請(qǐng)求模塊中脫引而出。

二、安裝和基本步驟使用

環(huán)境安裝:pip install requests

基本步驟:.

1.導(dǎo)入模塊:import requests
2.指定url:url = "........"
3.基于requests模塊發(fā)送請(qǐng)求:res = requests.get(url)
4.獲取響應(yīng)對(duì)象中的數(shù)據(jù)值:print(res.'...')
5.持久化存儲(chǔ)(不是必須的)

三、http知識(shí)復(fù)習(xí)

(一)八種請(qǐng)求方式:GET、 POST、 HEAD、OPTIONS、 PUT、 DELETE、 TRACE、 CONNECT。

這里我只詳細(xì)介紹getpost

1.GET

用于獲取資源,當(dāng)采用 GET 方式請(qǐng)求指定資源時(shí), 被訪問(wèn)的資源經(jīng)服務(wù)器解析后立即返回響應(yīng)內(nèi)容。通常以 GET 方式請(qǐng)求特定資源時(shí), 請(qǐng)求中不應(yīng)該包含請(qǐng)求體,所有需要向被請(qǐng)求資源傳遞的數(shù)據(jù)都應(yīng)該通過(guò) URL 向服務(wù)器傳遞。

2. POST

POST 動(dòng)作:用于提交數(shù)據(jù), 當(dāng)采用 POST 方式向指定位置提交數(shù)據(jù)時(shí),數(shù)據(jù)被包含在請(qǐng)求體中,服務(wù)器接收到這些數(shù)據(jù)后可能會(huì)建立新的資源、也可能會(huì)更新已有的資源。同時(shí) POST 方式的請(qǐng)求體可以包含非常多的數(shù)據(jù),而且格式不限。因此 POST 方式用途較為廣泛,幾乎所有的提交操作都可以使用 POST 方式來(lái)完成。

注:雖然用 GET 方式也可以提交數(shù)據(jù),但一般不用 GET 方式而是用 POST 方式。在 HTTP協(xié)議中,建議 GET 方式只用來(lái)獲取數(shù)據(jù),而 POST 方式則用來(lái)提交數(shù)據(jù)(而不是獲取數(shù)據(jù))。

get方式和post方式區(qū)別:

    簡(jiǎn)單來(lái)說(shuō),本質(zhì)上區(qū)別:
    - GET產(chǎn)生 一個(gè) TCP數(shù)據(jù)包
    - POST產(chǎn)生 兩個(gè) TCP數(shù)據(jù)包

    對(duì)于GET方式的請(qǐng)求,瀏覽器會(huì)把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù));
    而對(duì)于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))。

(二)http常見(jiàn)請(qǐng)求參數(shù)

    url:請(qǐng)求url地址
    headers:請(qǐng)求頭
    data:發(fā)送編碼為表單形式的數(shù)據(jù)
    params:查詢字符串

    host:請(qǐng)求web服務(wù)器的域名地址
    User-Agent:HTTP客戶端運(yùn)行的瀏覽器類(lèi)型的詳細(xì)信息。通過(guò)該頭部信息,web服務(wù)器可以判斷到當(dāng)前HTTP請(qǐng)求的客戶端瀏覽器類(lèi)別。
    Accept:指定客戶端能夠接收的內(nèi)容類(lèi)型,內(nèi)容類(lèi)型中的先后次序表示客戶端接收的先后次序。
    Accept-Encoding:指定客戶端瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類(lèi)型。
    Accept-Language:指定HTTP客戶端瀏覽器用來(lái)展示返回信息所優(yōu)先選擇的語(yǔ)言
    Connection:表示是否需要持久連接。如果web服務(wù)器端看到這里的值為“Keep-Alive”,或者看到請(qǐng)求使用的是HTTP 1.1(HTTP 1.1默認(rèn)進(jìn)行持久連接),表示連接持久有效,是不會(huì)斷開(kāi)的
    cookie:HTTP請(qǐng)求發(fā)送時(shí),會(huì)把保存在該請(qǐng)求域名下的所有cookie值一起發(fā)送給web服務(wù)器。
    Refer:包含一個(gè)URL,用戶從該URL代表的頁(yè)面出發(fā)訪問(wèn)當(dāng)前請(qǐng)求的頁(yè)面

四、request請(qǐng)求模塊的方法使用

舉例說(shuō)明:爬取我個(gè)人網(wǎng)站的數(shù)據(jù)

import requests  #導(dǎo)入request模塊
    url = "http://42.192.212.170/"  #指定url為我個(gè)人的網(wǎng)站
    r = requests.get(url)  #基于request模塊給我個(gè)人url網(wǎng)站發(fā)送請(qǐng)求
    print (r.url)      #獲取響應(yīng)包地址
    print (r.status_code) #獲取響應(yīng)包的狀態(tài)碼
    print (r.headers)  #獲取響應(yīng)包的頭部信息
    print (len(r.text))  #獲取以文本形式下響應(yīng)包的長(zhǎng)度
    print (r.encoding) #獲取網(wǎng)頁(yè)編碼方式
    print (r.cookies)  #獲取響應(yīng)包的cookie值
    print (r.content)  #以字節(jié)形式返回響應(yīng)體,會(huì)自動(dòng)解碼成gzip和deflate壓縮

輸出結(jié)果:

當(dāng)然也可以用下面幾種請(qǐng)求方法:

    1.requests.post(“http://httpbin.org/post”)                                        # POST請(qǐng)求
    2.requests.put(“http://httpbin.org/put”)                                          # PUT請(qǐng)求
    3.requests.delete(“http://httpbin.org/delete”)                                    # DELETE請(qǐng)求
    4.requests.head(“http://httpbin.org/get”)                                         # HEAD請(qǐng)求
    5.requests.options(“http://httpbin.org/get” )                                     # OPTIONS請(qǐng)求

requests響應(yīng)參數(shù)說(shuō)明:

    r.encoding                       #獲取當(dāng)前的編碼
    r.encoding = 'utf-8'             #設(shè)置編碼
    r.text                           #以encoding解析返回內(nèi)容。字符串方式的響應(yīng)體,會(huì)自動(dòng)根據(jù)響應(yīng)頭部的字符編碼進(jìn)行解碼。
    r.content                        #以字節(jié)形式(二進(jìn)制)返回。字節(jié)方式的響應(yīng)體,會(huì)自動(dòng)為你解碼 gzip 和 deflate 壓縮。
    r.headers                        #以字典對(duì)象存儲(chǔ)服務(wù)器響應(yīng)頭,但是這個(gè)字典比較特殊,字典鍵不區(qū)分大小寫(xiě),若鍵不存在則返回
    r.status_code                     #響應(yīng)狀態(tài)碼

五,params和payload參數(shù)使用說(shuō)明

舉例說(shuō)明:

    import requests  #導(dǎo)入request模塊
    r1 = requests.get("http://42.192.212.170/",params={'s':'1'} )   #params字符串傳參變量s為1
    print (r1.url)
    payload1 = {'s':'1'} #設(shè)置payload參變量s為1
    r2 = requests.get("http://42.192.212.170/",params=payload1) #將params設(shè)為payload1
    print (r2.url)
    payload2 = {'key1':"value1",'key2':'value2'} #設(shè)置payload參變量key1為value1并且變量key2為value2
    r3 = requests.get("http://42.192.212.170/",params=payload2) #params設(shè)為payload2
    print (r3.url)

輸出結(jié)果:

總結(jié)

到此這篇關(guān)于python爬蟲(chóng)之request模塊的文章就介紹到這了,更多相關(guān)python爬蟲(chóng)之request模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python得到單詞模式的示例

    python得到單詞模式的示例

    今天小編就為大家分享一篇python得到單詞模式的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 詳解python破解zip文件密碼的方法

    詳解python破解zip文件密碼的方法

    這篇文章主要介紹了python破解zip文件密碼的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python小程序基于Jupyter實(shí)現(xiàn)天氣查詢的方法

    python小程序基于Jupyter實(shí)現(xiàn)天氣查詢的方法

    這篇文章主要介紹了python小程序基于Jupyter實(shí)現(xiàn)天氣查詢的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • pip install python 快速安裝模塊的教程圖解

    pip install python 快速安裝模塊的教程圖解

    這篇文章主要介紹了pip install python 如何快速安裝模塊,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python Django教程之模型中字段驗(yàn)證詳解

    Python Django教程之模型中字段驗(yàn)證詳解

    這篇文章主要為大家詳細(xì)介紹了Python Django如何對(duì)模型中的字段進(jìn)行驗(yàn)證,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下
    2022-10-10
  • Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法

    Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法

    這篇文章主要介紹了Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python爬蟲(chóng)爬取、解析數(shù)據(jù)操作示例

    Python爬蟲(chóng)爬取、解析數(shù)據(jù)操作示例

    這篇文章主要介紹了Python爬蟲(chóng)爬取、解析數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Python爬蟲(chóng)爬取、解析、存儲(chǔ)數(shù)據(jù)相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • python中如何使用虛擬環(huán)境

    python中如何使用虛擬環(huán)境

    這篇文章主要介紹了python中如何使用虛擬環(huán)境,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • 10行Python代碼助你整理雜亂無(wú)章的文件

    10行Python代碼助你整理雜亂無(wú)章的文件

    這篇文章主要和大家分享一個(gè)簡(jiǎn)單的小程序,只需要10行Python代碼,就能助你整理雜亂無(wú)章的文件,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-02-02
  • MNIST數(shù)據(jù)集轉(zhuǎn)化為二維圖片的實(shí)現(xiàn)示例

    MNIST數(shù)據(jù)集轉(zhuǎn)化為二維圖片的實(shí)現(xiàn)示例

    這篇文章主要介紹了MNIST數(shù)據(jù)集轉(zhuǎn)化為二維圖片的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論