iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0
AI & Data

Puppeteer 簡單快速建立自己的 Nodejs 爬蟲系列 第 20

Day 20 Puppeteer API 介紹 - class: ElementHandle

  • 分享至 

  • xImage
  •  
  1. class: ElementHandle
    ElementHandle代表頁面DOM的物件,可以透過page.$創造

    const puppeteer = require('puppeteer');
    
    puppeteer.launch().then(async browser => {
      const page = await browser.newPage();
      await page.goto('https://google.com');
      const inputElement = await page.$('input[type=submit]');
      await inputElement.click();
      // ...
    });
    

    當frame轉跳,ElementHandle會自動被丟棄。
    可以透過page.$eval() 和 page.evaluate()使用

    剩下的方法與前面的類別方法一樣

  2. class: Request
    當頁面發出請求時,這些事件就會被調用,並會回傳使物件
    * 'request'
    * 'response'
    * 'requestfinished'

    page.on('requestfailed', request => {
      console.log(request.url() + ' ' + request.failure().errorText);
    });
    
    const response = await page.goto('http://example.com');
    const chain = response.request().redirectChain();
    console.log(chain.length); // 1
    console.log(chain[0].url()); // 'http://example.com'
    
  3. class: Response
    代表Response的物件,發出request並回傳回來的物件


上一篇
Day 19 Puppeteer API 介紹 - class: ExecutionContext, JSHandle
下一篇
Day 21 Puppeteer API 介紹 - class: SecurityDetails, Target, CDPSession, TimeoutError
系列文
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言