puppeteer基础

一个简单的示例

该例子模拟浏览器打开有道翻译,然后在console打印出hello world的英文翻译.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: './chrome-win/chrome-win/chrome.exe',
    headless: true
  });
  console.log('start puppeteer');
  const page = await browser.newPage();
  await page.goto('http://fanyi.youdao.com/');
  await page.type('#inputOriginal', text);
  await page.click('#transMachine');
  await page.waitFor(2 * 1000);
  let transtext = await page.evaluate(() => {
    return document.querySelector("#transTarget > p > span").textContent;
  })
  console.log(transtext);
  browser.close();
})();

Node.js模块

为了更好的组织项目,首先要学会Node.js的模块系统.

创建模块

创建一个main.js文件

var hello = require('./hello');
hello.world();

创建一个hello.js文件在同文件夹下:

exports.world = function() {
  console.log('Hello World');
}
const text='asdf'

经实验,可知main.js只能访问world函数,而不能访问text函数.world也只是exports对象的一个函数而已.

hello.js 通过 exports 对象把 world 作为模块的访问接口,在 main.js 中通过 require(’./hello’) 加载这个模块,然后就可以直接访 问 hello.js 中 exports 对象的成员函数了.

暂时只需要这么多.


我很好奇