国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Puppeteer 請求

2020-06-29 14:42 更新

class:request

class: Request v0.9.0

每當(dāng)頁面發(fā)送一個請求,例如網(wǎng)絡(luò)請求,以下事件會被 puppeteer 頁面觸發(fā):

  • 'request' 當(dāng)請求發(fā)起后頁面會觸發(fā)這個事件。
  • 'response' 請求收到響應(yīng)的時候觸發(fā)。
  • 'requestfinished' 請求完成并且響應(yīng)體下載完成時觸發(fā) 如果某些時候請求失敗,后續(xù)不會觸發(fā) 'requestfinished' 事件(可能也不會觸發(fā) 'response' 事件),而是觸發(fā) 'requestfailed' 事件 如果請求得到一個重定向的響應(yīng),請求會成功地觸發(fā) 'requestfinished' 事件,并且對重定向的 url 發(fā)起一個新的請求

Methods

  • request.abort([errorCode])v0.9.0
  • request.continue([overrides])v0.9.0
  • request.failure()v0.9.0
  • request.frame()v0.9.0
  • request.headers()v0.9.0
  • request.isNavigationRequest()v0.9.0
  • request.method()v0.9.0
  • request.postData()v0.9.0
  • request.redirectChain()v0.9.0
  • request.resourceType()v0.9.0
  • request.respond(response)v0.9.0
  • request.response()v0.9.0
  • request.url()v0.9.0

Methods

request.abort([errorCode])v0.9.0

  • errorCode <string> 可選的錯誤碼。默認為failed,可以是以下值:
    • aborted - 操作被取消 (因為用戶的行為)
    • accessdenied - 訪問資源權(quán)限不足(非網(wǎng)絡(luò)原因)
    • addressunreachable - 找不到IP地址 這通常意味著沒有路由通向指定主機或者網(wǎng)絡(luò)
    • blockedbyclient - 客戶端選擇阻止請求
    • blockedbyresponse - 請求失敗,因為響應(yīng)是與未滿足的要求一起傳遞出去的(例如,'X-Frame-Options' 和'Content-Security-Policy' 祖先檢查)
    • connectionaborted - 未收到數(shù)據(jù)發(fā)送的ACK信號導(dǎo)致的連接超時
    • connectionclosed - 連接關(guān)閉(對應(yīng) TCP FIN 包)
    • connectionfailed - 嘗試連接失敗。
    • connectionrefused - 嘗試連接拒絕。
    • connectionreset - 連接被重置 (對應(yīng) TCP RST 包)。
    • internetdisconnected - 網(wǎng)絡(luò)連接丟失。
    • namenotresolved - 主機名字無法被解析。
    • timedout - 操作超時。
    • failed - 發(fā)生通用錯誤。
  • returns: <Promise>

想要中斷請求,應(yīng)該使用 page.setRequestInterception 來開啟請求攔截,如果請求攔截沒有開啟會立即拋出異常。

  • request.continue([overrides])v0.9.0 overrides <Object> 可選的請求覆寫選項,可以是以下值中的一個:
    • url <string> 如果設(shè)置的話,請求 url 將會改變
    • method <string> 如果設(shè)置的話,會改變請求方法 (例如,GET 或者 POST)
    • postData <string> 如果設(shè)置的話,會改變請求要提交的數(shù)據(jù)
    • headers <Object> 如果設(shè)置的話,改變 - http 請求頭
  • returns: <Promise>

想要用可選的請求覆寫選項繼續(xù)請求,應(yīng)該使用 page.setRequestInterception 來開啟請求攔截,如果請求攔截沒有開啟會立即拋出異常

request.failure()v0.9.0

  • returns: <?Object> 描述請求失敗的對象,如果有的話
    • errorText <string> 人類可讀的錯誤信息,例如,'net::ERR_FAILED'。 requestfailed 事件觸發(fā)后,在沒有請求失敗的情況下,這個方法會返回 null。 輸出所有失敗請求示例:
      page.on('requestfailed', request => {  console.log(request.url() + ' ' + request.failure().errorText);});

request.frame()v0.9.0

  • returns: <?Frame> 發(fā)起請求的 Frame,如果導(dǎo)航到錯誤頁面,則為null。

request.headers()v0.9.0

  • returns: <Object> 該請求的 http 頭對象。所有頭都采用小寫的命名方式

request.isNavigationRequest()v0.9.0

  • returns: <boolean> 這個請求是否正在驅(qū)動框架在導(dǎo)航。

request.method()v0.9.0

  • returns: <string> 請求方法 ( GET,POST,等。)

request.postData()v0.9.0

  • returns: <string> 請求提交的數(shù)據(jù)。

request.redirectChain()v0.9.0

  • returns: <Array<Request>> redirectChain 是一條獲取資源的請求鏈
  • 如果沒有被重定向而且請求成功的話, 鏈路將會被置空
  • 如果服務(wù)器至少響應(yīng)了一次重定向, 那么這條鏈路將會包含所有重定向請求

redirectChain 會共享相同鏈路上的所有請求。 舉個例子,如果網(wǎng)站 http://example.com 重定向一次到 https://example.com,那么這條鏈就會包含一個請求



const response = await page.goto('http://example.com');
const chain = response.request().redirectChain();
console.log(chain.length); // 1console.log(chain[0].url()); // 'http://example.com'

如果網(wǎng)站 https://google.com 沒有重定向,那么鏈(數(shù)組)就會被置空:

const response = await page.goto('https://google.com');
const chain = response.request().redirectChain();
console.log(chain.length); // 0

request.resourceType()v0.9.0

  • returns: <string> 包含渲染引擎識別出的請求資源類型 資源類型為以下值中的一個:document,stylesheet,image,media,font,script,texttrack,xhr,fetch,eventsource,websocket,manifest,other。

request.respond(response)v0.9.0

  • response <Object> 完成請求的響應(yīng)對象
    • status <number> 響應(yīng)狀態(tài)碼,默認為 200。
    • headers <Object> 可選的響應(yīng)頭
    • contentType <string> 設(shè)置的話,等同于 Content-Type 響應(yīng)頭
    • body <Buffer|string> 可選的響應(yīng)體
  • returns: <Promise>

完成請求后會返回一個響應(yīng)??梢酝ㄟ^開啟 page.setRequestInterception 選項來使用請求攔截,如果請求攔截沒有開啟則會拋出異常。 下面例子中,所有執(zhí)行完成的請求都會返回 404 響應(yīng)體

await page.setRequestInterception(true);
page.on('request', request = >{
    request.respond({
        status: 404,
        contentType: 'text/plain',
        body: 'Not Found!'
    });
});

注意request.respond 不支持模擬響應(yīng) dataURL 請求。 對 dataURL請求使用 request.respond 并不會起任何作用。

request.response()v0.9.0

  • returns: <?Response> 相應(yīng)的 Response 對象,如果沒有收到響應(yīng)則是null。

request.url()v0.9.0

  • returns: <string> 請求的 URL。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號