puppeteer替换selenium爬虫的试用

一、优点

puppeteer是一个Nodejs的库,支持调用Chrome的API来操纵Web,相比较Selenium或是PhantomJs,它最大的特点就是它的操作Dom可以完全在内存中进行模拟既在V8引擎中处理而不打开浏览器,而且关键是这个是Chrome团队在维护,会拥有更好的兼容性和前景。

二、安装

npm i puppeteer --save

注意点,如果下载chrome的时候报错,可以更换镜像源

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i puppeteer  // 安装在项目下即可

三、初步试用

const puppeteer = require('puppeteer');
const fs = require("fs");


function write_file(data) {
  fs.writeFile("./a.html",data,function(err){
    if (err){
      console.log("写文件失败");
    }else{
      console.log("写入成功");
    }
  })
}

(async () => {

  const browser = await puppeteer.launch({
  	  headless: false,
      // headless: false,//不使用无头chrome模式
      executablePath: 'E:\\spider\\pup_spider\\node_modules\\[email protected]@puppeteer\\.local-chromium\\win64-599821\\chrome-win\\chrome.exe',//path to your chrome
  });
  const page = await browser.newPage();
  await page.goto('http://www.baidu.com');
  // await page.screenshot({"./": 'example.png'});
  console.log("open page");
  const result = await page.content();
  write_file(result);
  await browser.close();
})();

个人感受,不论是流畅度还是控制元素,都比selenium舒服,喜欢的朋友可以尝试一下。

你可能感兴趣的:(小工具)