|
本篇概要
requests模塊 接觸過Python爬蟲的同學(xué),對(duì)requests模塊都不會(huì)陌生。這是一個(gè)高效便捷快速友好的HTTP請(qǐng)求庫。
requests模塊支持多種HTTP請(qǐng)求方式,基本上涵蓋了HTTP協(xié)議所定義的請(qǐng)求方法:
同時(shí)能夠方便地查看請(qǐng)求和響應(yīng)的信息。
下面我們通過寫一個(gè)腳本,實(shí)際的使用一下requests這個(gè)庫。 第一個(gè)腳本 第一個(gè)例子,我們使用requests庫對(duì)上一篇介紹的HTTP請(qǐng)求和響應(yīng)測(cè)試網(wǎng)站www.httpbin.org的/ip路徑進(jìn)行一個(gè)GET請(qǐng)求。 運(yùn)行腳本,結(jié)果返回和瀏覽器上打開的結(jié)果一致的信息:
我們?cè)賮碓L問一下httpbin.org的跳轉(zhuǎn)重定向鏈接:
這個(gè)鏈接會(huì)跳轉(zhuǎn)到example.com的網(wǎng)站上。在這里,我們使用params參數(shù)來傳遞重定向的值:
返回了200狀態(tài)碼,表示請(qǐng)求成功:
我們可以再通過requests來看看頭域的信息: 結(jié)果返回了: 設(shè)置請(qǐng)求頭域 默認(rèn)情況下,requests會(huì)使用自己的請(qǐng)求頭,但是我們可以修改它。
httpbin.org提供了一個(gè)測(cè)試http頭域的工具:/headers:
其會(huì)返回客戶端的請(qǐng)求頭。我們直接使用requests.get請(qǐng)求一下,看看返回的結(jié)果:
可以看到,在默認(rèn)請(qǐng)求下,requests的瀏覽器標(biāo)識(shí)為“python-requests/2.18.2”,接受所有類型的響應(yīng):
下面,我們使用requests請(qǐng)求方法中的headers屬性,將我們的請(qǐng)求頭域修改一下,瀏覽器標(biāo)識(shí)改為Iphone X:
結(jié)果我們的瀏覽器標(biāo)識(shí)成功改成了Iphone X :
提交POST表單 在Web滲透測(cè)試之中,表單是測(cè)試的一個(gè)重點(diǎn)。有表單的地方就有輸入,有輸入的地方就會(huì)與服務(wù)器進(jìn)行交互,有交互的地方就有機(jī)會(huì)出現(xiàn)漏洞,像經(jīng)典的SQL注入多數(shù)情況下就是通過在輸入框中構(gòu)造SQL語句來達(dá)到入侵的效果。 在requests中,我們通過post()方法來進(jìn)行POST請(qǐng)求,使用它的data屬性來傳輸表單數(shù)據(jù),同樣是利用httpbin.org提供的post測(cè)試路徑:
看看返回的結(jié)果:
表單數(shù)據(jù)中,是我們傳輸?shù)膎ame數(shù)據(jù)。 本篇內(nèi)容就此結(jié)束。 有錯(cuò)誤的地方還望指正,有疑問的地方歡迎留言討論。 感謝閱讀! |
|
|