简介

  • 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. pytorch 调用forward 的具体流程
  2. 杭州程序员吐槽:月薪1.3万,结婚需要给女方彩礼35-40万,直呼结不起!网友回复:娶老婆还是娶祖宗?...
  3. c语言题目及答案1037,PAT Basic 1037. 在霍格沃茨找零钱(20)(C语言实现)
  4. SpringMVC核心流程图
  5. win7服务器端口被占用,高手亲自帮您win7端口被占用的详尽处理要领
  6. Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
  7. CVPR AAAI 2020 |人脸活体检测最新进展
  8. java学习日记之小技巧(跟着变量走一走)
  9. 幅相曲线matlab,matlab开环幅相曲线
  10. SQL Server中Text和varchar(max)数据类型区别
  11. [NVIDIA] Ubuntu 20.04 安装 nvidia-460 + cuda-11.2
  12. 深度学习实践指南(五)—— 求解异或问题
  13. 【信号与系统】Multisim 仿真信号合成与分解
  14. html表格中的字体上下居中 css,css 文字垂直居中实现方法总结
  15. CH(NH2)2PbI3(FAPbI3) 甲脒碘基钙钛矿 1451592-07-6
  16. 专利文件公开显示谷歌或正开发实时翻译新型虚拟键盘
  17. 分享一个qt实现的登录界面模板
  18. android上查看浏览器内核版本号,各种浏览器的userAgent及如何使用JS来检测游览器类型,或android是什么版本号...
  19. html怎么做实心圆,html5如何使用canvas画空心圆与实心圆
  20. php 数字转换为字符串,PHP-将数字转换为Excel的字符串

热门文章

  1. 如何利用互联网思维在线上进行获客?
  2. Vue3+Typescript学习笔记(十)组件通信--父子组件通信(props,$emit),非父子组件通信(provide和inject,mitt库)
  3. HTML5竹林在风中摇曳动画
  4. Linux工作站开机后鼠标很卡,(已解决)开机后鼠标延迟卡顿1分钟后就没事了是什么情况...
  5. 水果FL Studio/Cubase/Studio one音乐宿主软件对比
  6. python指南针_如何用用Python 函数库 APIs 编写?指南针在这里
  7. tp5 分表+ 分页查询
  8. microsoft sql server 错误18456
  9. Python爬虫帮你自建无版权图片素材库!
  10. 云上创新 | 2021阿里云峰会直播预告