![](https://img-blog.csdnimg.cn/20200323195838313.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
puppeteer
记录puppeteer使用过程中的问题
FserSuN
这个作者很懒,什么都没留下…
展开
-
pupppeteer-page-proxy每个页面或请求独立使用代理
1 pupppeteer-page-proxy模块简介puppeteer代理设置方法中介绍了设置代理的几种方式,其中之一是通过拦截请求,再通过http模块转发,给http模块加上代理实现代理设置。pupppeteer-page-proxy[1]nodejs模块就是基于此实现为每个请求或page加代理。其中一些特性如下:支持每个page或每个请求使用代理。内部处理cookie。支持http...原创 2020-03-23 20:49:50 · 3537 阅读 · 0 评论 -
while trying to connect to Chrome! The only Chrome revision guaranteed to is r575458
问题描述与解决使用puppeteer启动chrome会出现Error: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r575458错误。根据官方文档,每一个puppeteer版本对应一个版本的chromium。当我们打开pupp...原创 2019-11-29 22:01:24 · 2729 阅读 · 0 评论 -
puppeteer离线安装不同版本的chrome
1.背景使用puppeteer时会默认下载chrome,由于要访问google,因此没有使用代理情况下,无法成功下载。通常是设置好环境变量,跳过chrome下载,随后单独下载chrome,并在浏览器启动项executablePath中指定文件路径。{ headless: true args: [] executablePath : "chromePath"}官方给...原创 2019-11-03 18:50:22 · 4251 阅读 · 2 评论 -
Are you headless页面无头浏览器检测绕过
1 背景研究人员开发者使用了一种检测方法,并提供了检测页面对chrome浏览器进行检测,判断是否是无头浏览器。具体返回结果如下图。2 检测手段分析常见的前端检测手段即通过前端JS脚本收集数据上报,然后检测浏览器特征判断是否是无头浏览器。分析过程即看请求中使用的分析脚本及上报数据。首先打开正常浏览器可以看到如下7个请求。https://arh.antoinevastel.com/bo...原创 2019-09-12 20:58:00 · 2844 阅读 · 0 评论 -
解决Puppeteer拦截图片导致超时的问题
1 背景通过puppeteer操作浏览器访问一个网站,大量的图片请求会站用很多时间。如果将不必要的图片的请求拦截,那么会加快访问速度。但访问某些网站,如果将图片拦截,那么网站自身会不断重试,最终导致整个网站访问超时。如下图所示,看到的现象是屏幕疯狂闪烁,大量重试,并造成超时。遇到这种情况,通过本地返回一张自定义图片即可解决。2 拦截图片请求返回本地自定义图片当产生的图片请求被我们拦截到,我...原创 2019-09-11 21:30:14 · 3518 阅读 · 0 评论 -
Puppeteer设置浏览器代理的三种思路
0 背景Puppeteer是google推出的操作浏览器的框架。当我们通过框架操作浏览器去访问页面通常需要设置代理。本文简要总结设置代理的方式。1 通过启动参数设置代理我们通过puppeteer启动浏览通常可以指定参数,通过–proxy-server参数[1]指定代理。http及https请求的将通过代理服务器访问。若每次需要更换代理就需要重新通过launch方法来启动浏览器。 co...翻译 2019-06-30 17:29:37 · 18924 阅读 · 7 评论 -
Puppeteer通过evaluate执行脚本获取cookie
1 应用背景通常我们希望在页面加载一些脚本然后获取脚本生成的cookie。这里考虑使用page.setContent方法,其中script标签内部包含设置cookie的代码。最后通过执行document.cookie来获取cookie。(async () => { const browser = await puppeteer.launch({ "executa...原创 2019-02-16 09:37:01 · 9287 阅读 · 1 评论 -
Puppeteer调用page对象evaluate方法产生的Execution context was destroyed错误处理
Execution context was destroyed产生的场景在NodeJs中使用Puppeteer中Page对象的evaluate方法执行脚本,深入使用后一定遇到过Error: Execution context was destroyed 错误。这通常发生在浏览器正在执行一个任务,紧接使用方并发提交了另一个脚本到浏览器,导致浏览器发生跳转。这时第一次提交的任务会抛出异常,产生该错误...原创 2018-12-07 00:29:35 · 11679 阅读 · 4 评论 -
Puppeteer拦截器在数据抓取中的使用
Puppeteer拦截器在数据抓取中的使用Puppeteer提供的拦截器功能可以用来拦截请求,当访问页面时可以拦截无用请求,加快请求速度。拦截器使用示例下面是Puppeteer Api文档中关于拦截器的一个例子,下面针对这个例子说明相关问题及使用注意点。const puppeteer = require('puppeteer');puppeteer.launch().then(async...原创 2018-09-22 11:41:32 · 9467 阅读 · 0 评论 -
Puppeteer自动化测试鼠标键盘基本操作及注意事项
通过Puppeteer Api来控制Chrome进行数据抓取或自动化测试通常模拟鼠标或键盘的操作。接下来通过一些实例来介绍这些基本操作。如下的测试为了方便观察结果 headless均设置为false,即有界面状态下测试。puppeteer版本为0.1.7,chrome版本为5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KH...原创 2018-08-28 00:06:31 · 12684 阅读 · 2 评论 -
反爬虫中chrome无头浏览器的几种检测与绕过方式
chrome无头浏览器的几种检测方式本文测试使用的chrome版本为 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.2 Safari/537.361.UserAgent检测无头模式下的UA会带有HeadlessChrome关键...翻译 2018-08-18 02:06:34 · 32720 阅读 · 10 评论 -
Pm2管理下的Puppeteer调试日志配置
Pm2管理下的Puppeteer调试日志配置配置说明使用puppeteer时,在Debug时希望看到向浏览器提交的执行数据,这是可以通过配置环境变来实现。以PM2管理为例,在process文件中env环境配置项增加配置。 "env": { "DEBUG":"*"原创 2018-05-29 08:43:08 · 1525 阅读 · 0 评论 -
反爬虫之令无头浏览器chrome无法执行的一种方式
chrome develper模式令代码无法执行的一种方式本文测试环境的版本信息如下:Google Chrome 66.0.3359.181 (正式版本) (64 位)修订版本 a10b9cedb40738cb152f8148ddab4891df876959-refs/branch-heads/3359@{#828}操作系统 Mac OS XJavaScript ...原创 2018-05-31 00:51:18 · 3949 阅读 · 5 评论