iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
0
AI & Data

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

Day 16 Puppeteer API 介紹 - class: Page method part 2

  • 分享至 

  • xImage
  •  

延續上一篇

const searchValue = await page.$eval('#search', el => el.value);
//link裡的屬性rel為preload
const preloadHref = await page.$eval('link[rel=preload]', el => el.href);
const html = await page.$eval('.main-container', e => e.outerHTML);

DOC範例

const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iPhone = devices['iPhone 6'];

puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  await page.emulate(iPhone);
  await page.goto('https://www.google.com');
  // other actions...
  await browser.close();
});
拿到body
const bodyHandle = await page.$('body');
在第二個參數帶入
const html = await page.evaluate(body => body.innerHTML, bodyHandle);
棄用bodyHandle
await bodyHandle.dispose();

這邊稍微解釋一下ElementHandleJSHandle
ElementHandle是負責處理DOM的element(HTML TAGS)
JSHandle是負責處理Javascript的物件


下一篇就可以把page結束掉


上一篇
Day 15 Puppeteer API 介紹 - class: Page event part 1
下一篇
Day 17 Puppeteer API 介紹 - class: Page method part 3
系列文
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言