简介

  • Puppeteer是 GoogleChrome 团队官方的无界面(Headless)Chrome工具
  • 它是一个NodeJs库
  • 提供了高级的 API 来控制基于Chrome Debug Protocols(简称 CDP)协议上的Headless Chrome
  • 可以用于配置控制正常的Chrome
  • 本文主要添加一些使用示例

安装

安装chrome

不再详细描述,下载安装即可。启动headless,参考链接

chrome \--headless \                   # Runs Chrome in headless mode.--disable-gpu \                # Temporarily needed if running on Windows.--remote-debugging-port=9222 \https://www.chromestatus.com   # URL to open. Defaults to about:blank.

安装Puppeteer

npm安装,详情参考链接

$ npm i --save puppeteer

示例代码

网页源码

const puppeteer = require('puppeteer');(async () => {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://www.toutiao.com', { waitUntil: 'networkidle2' });const pageContent = await page.content()console.log(pageContent)await page.close()await page.deleteCookie()await browser.close();
})();

网页截图

const puppeteer = require('puppeteer');(async () => {const browser = await puppeteer.launch();const page = await browser.newPage();page.setViewport({ width: 1920, height: 2160})await page.goto('https://www.toutiao.com', { waitUntil: 'networkidle2' });await page.screenshot({path:'toutiao.png'})await page.close()await page.deleteCookie()await browser.close();
})();

代理及认证

  • 参考文章
const puppeteer = require('puppeteer');(async () => {const proxyServer = 'http://proxy_ip:proxy_port'const browser = await puppeteer.launch({headless:false,args: [`--proxy-server=${proxyServer}`]});const page = await browser.newPage();await page.authenticate({ username: 'username', password: 'password' })await page.goto('https://www.toutiao.com/', { waitUntil: 'networkidle2' });const pageContent = await page.content()console.log(pageContent)await page.close()await page.deleteCookie()await browser.close();
})();

设置代理

正常代理

const puppeteer = require('puppeteer');(async () => {const proxyServer = 'http://proxy_ip:proxy_port'const browser = await puppeteer.launch({headless: false,args: [`--proxy-server=${proxyServer}`]});
})();

含有账密的代理

参考[示例代码 - 代理及认证]

PAC代理

const puppeteer = require('puppeteer');(async () => {const pacProxyFile = 'file location'const browser = await puppeteer.launch({headless: false,args: [`google-chrome --proxy-pac-url=${pacProxyFile}`]});const page = await browser.newPage();await page.authenticate({ username: 'username', password: 'password' })
})();

相关链接

Chrome Debug Protocol
Headless 入门
Puppeteer
Puppeteer中文
相关教程

Puppeteer入门相关推荐

  1. puppeteer入门教程

    puppeteer入门教程 安装命令 npm install puppeteer demo案例-打开百度并截图 const puppeteer = require('puppeteer');(asyn ...

  2. Puppeteer入门初探

    本文来自网易云社区 作者:唐钊 最近在看 node 爬虫相关的一些东西,我记得还是很久以前常用的 node 爬虫工具还是 superagengt+cherrio,他们的思路是通过发起 http 请求然 ...

  3. Puppeteer入门实践

    环境 1.安装nodejs 官网:https://nodejs.org/zh-cn 下载安装好nodejs只后 验证:node -v 出现版本号表示安装成功,否则需要配置环境变量 2.创建node项目 ...

  4. puppeteer( Nodejs 版 selenium )快速入门

    From:https://www.cnblogs.com/CyLee/p/9310839.html puppeteer 官网:https://pptr.dev/ Puppeteer 中文文档 (与官方 ...

  5. nginx指定配置文件启动_【第1717期】Nginx入门指南

    前言 Nginx有在部署早读课网站的时候用到,平时用的不多,又是一个可以顺便了解的知识点.那个@李晓云,这篇是你想了解的吗?今日早读文章由@慕小白翻译分享. 正文从这开始-- 这份指南是对nginx的 ...

  6. 无头浏览器 和 Puppeteer

    什么是无头浏览器 无头浏览器即headless browser,是一种没有界面的浏览器.它有浏览器该有的一切功能,除了界面.可以通过命令进行浏览器内的各种操作. 我们日常使用浏览器的步骤为:启动浏览器 ...

  7. puppeteer 教程(2) ---- puppeteer介绍

    目标 对puppeteer大概的介绍,是什么,能够做什么,如何使用 简介 Puppeteer 是一个node库,他提供了一组用来操纵Chrome的API, 通俗来说就是一个 headless chro ...

  8. 深入理解浏览器原理和架构|硬核

    本文用47张图带你了解「浏览器的发展史」.「浏览器的架构」.「浏览器的基本原理」以及 「浏览器的其它小知识」 ???? 正文开始 浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示HTML文档. ...

  9. 活动预告丨易盾CTO朱浩齐将出席2018 AIIA大会,分享《人工智能在内容安全的应用实践》

    本文来自网易云社区 对于很多人来讲,仿佛昨天才燃起来的人工智能之火,转眼间烧遍了各个角落,如今我们的生活中,处处渗透着人工智能.10月16日,2018年 AIIA人工智能开发者大会在苏州举办,网易云易 ...

最新文章

  1. 关于KN95口罩:可以使用多久?要不要呼吸阀?怎么佩戴?
  2. 如何在Ubuntu/CentOS上安装Linux内核4.0
  3. 我的第一个React Native App
  4. redis的flushall命令
  5. java证明ArrayList是线程不安全的
  6. [react] react怎么提高列表渲染的性能?
  7. selenium 验证码——万能码的使用
  8. Linux 磁盘管理--RAID1创建
  9. java guava map_Guava - Map
  10. 吴恩达深度学习之三《结构化机器学习项目》学习笔记
  11. 阿里云移动端播放器高级功能---画面控制
  12. python实操案例_python实战案例分享 - 讲师
  13. pc端字体大小自适应几种方法
  14. 一篇SCI论文最快多久能完成?
  15. 设置QQ空间评论回复权限,包括日志、相册、说说、留言板的评论回复和留言权限,限制名单成员无评论回复权限
  16. 英语之---动名词做定语
  17. 思维导图学习3——思维导图示例
  18. 主谓一致 | 谓语动词单复数使用讲解
  19. 超声波传感器--Arduino
  20. Linux如何带压缩密码的7z,Linux 压缩和解压 7z

热门文章

  1. symbian备忘录
  2. python中使用np.array()将list转换成Array的坑
  3. 11种概率分布,你了解几个?
  4. 【产品应用】一体化步进电机在全自动折页机的应用
  5. vivoX60和vivox50参数对比 vivoX60和vivox50有什么区别
  6. 微信小程序开发实战指南
  7. 通过swig将C/C++代码暴露给python
  8. vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI
  9. 计算机蓝屏代码74,win7电脑开机蓝屏提示错误代码0x0000000074的解决办法
  10. Ubuntu普通用户无法SSH登陆而root用户可以正常登陆问题