puppeteer入门教程

本文详细介绍了Puppeteer的基本概念、用途,以及如何在项目中配置环境并实现基础功能,如爬取网页、截图和模拟用户操作,特别强调了Puppeteer在处理有反爬机制或异步渲染页面时的优势。

简介

这篇文章介绍Puppeteer相关知识,并编写了两个简单的使用Puppeteer的例子。包括从入门的介绍到功能的实现,教的很细,包会。

写在前面

所有的爬虫都要注意遵守相应的法律法规,访问速度不可以过快,过大的流量可能导致服务器故障。对于Puppeteer而言最佳的方案应该是完全拟人的速度或比真实用户稍快一些,可以添加一些等待函数。
如果需要更快的速度可以考虑使用不同的ip和客户机。

Puppeteer官方文档

官方文档链接: Puppeteer
中文官方文档链接: Puppeteer官方中文文档

Puppeteer简介

Puppeteer是一个由Google开发的Node.js库,用于控制Headless Chrome或Chromium浏览器,它广泛用于网页爬取、自动化测试和生成页面截图等任务。

这个工具对于很多人来说也许很陌生,但selenium相信更多人应该听说过,Puppeteer和selenium其实特别相似,都是控制浏览器进行一些指定的操作,如点击,移动鼠标,按下键盘等。

与selenium最大的不同在于,Puppeteer是基于浏览器开发者工具进行的操作,而selenium是基于webdriver。这也决定了Puppeteer更不容易被反爬工具所识别,因为它的操作在服务器端与用户的操作无异,而selenium的每一步操作都会被展示为webdriver。

当然Puppeteer能做的也不只是爬虫,由于它能在浏览器模拟用户的操作,因此也可用于一些web界面或后端接口的调试,本篇文章着重介绍爬虫知识。

什么情况下应该使用Puppeteer?

我认为爬虫大致可以分为几类

1.自己或所在公司的网站
这一类通常是自己的或公司或内部的一些网站或信息,因为种种原因不能直接获取,需要编写爬虫,且目标服务器能承受爬取的流量。那么使用 Python 的request库或 curl 命令即可,这样的速度相较于Puppeteer快的多得多,如果是这种情况不建议使用Puppeteer。

2.公开的网站,没有严格的反爬机制,同步加载的页面
这一类应该是最常见的需求,毕竟大多数公开的网站不会设置太严格的反爬机制,有很多直接request就可以,少部分简单的反爬只要有user-agent也能正常获取信息,这种情况下更建议使用 Python 的request库或者 js 的axios库,这些库能获取指定链接的内容,后续可以通过其他工具解析。因为这些库并不需要渲染页面,对资源占用更小,速度也更快。此外,这类库的逻辑也相对更简单,代码更容易编写。

3.公开的网站,有反爬机制或异步渲染的页面
这是非常建议使用Puppeteer的场景,比如html和数据是分两个请求发送的,如果只使用request请求数据,可能会被判断为机器人导致被封禁。又比如或者页面是异步加载,使用request可能只能获得其中一个,只拿到了html没拿到数据那可就白爬了。但Puppeteer能帮助我们获取到Dom树(也就是最终加载完的html),我们可以解析Dom树,这样就能避免数据不全的问题。

对于反爬机制而言,Puppeteer也提供了更丰富的绕过机制的可能性,因为它完整地渲染了页面,也提供了各种鼠标和键盘事件,一些普通的机器人验证还是很容易绕过的。复杂的机制也可以通过较难的函数破解。

4.非公开的网站
不可以爬!不可以爬!!例如学校存储成绩的后台,公司的业务管理后台等,可以通过一些手段伪造验证进入,但是爬的话你和牢饭仅几步之隔。爬虫学得好,牢饭吃到饱就是这么来的。因为它非公开,访问记录还是很容易通过日志查出来的。

配置环境

安装nodejs

nodejs的安装包在nodejs官网就能找到,推荐安装左侧的Recommend For Most Users版本,因为最新版本可能会有一些BUG,而且我们目前的需求并不需要特别高的版本。
下载nodejs
安装nodejs并不难,一直Next即可
安装nodejs
安装完成
在这里插入图片描述
在cmd中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值