详解puppeteer使用代理


Posted in Javascript onDecember 27, 2018

背景

在使用puppeteer进行访问页面的时候,有时候需要用到代理。

环境: centos 7

chrome 安装

puppeteer使用chrome。 参考chrome的命令行使用方式。 在官网中没看到说明,不过一般的执行文件都是支持help的。
在服务器上安装chrome :

vim /etc/yum.repos.d/google-chrome.repo

添加内容

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

安装浏览器

yum -y install google-chrome-stable

说明: yum search chrome 可以查看供安装的包

chrome 命令行代理

在shell中执行命令:

google-chrome -h

即可看到所有的命令选项,其中 OPTION 下面有代理添加的介绍以及示例:

--proxy-server=host:port
    Specify the HTTP/SOCKS4/SOCKS5 proxy server to use for requests.
    This overrides any environment variables or settings picked via
    the options dialog. An individual proxy server is specified
    using the format:

    [<proxy-scheme>://]<proxy-host>[:<proxy-port>]

    Where <proxy-scheme> is the protocol of the proxy server, and is
    one of:

    "http", "socks", "socks4", "socks5".

    If the <proxy-scheme> is omitted, it defaults to "http". Also
    note that "socks" is equivalent to "socks5".

    Examples:

    --proxy-server="foopy:99"
     Use the HTTP proxy "foopy:99" to load all URLs.

    --proxy-server="socks://foobar:1080"
     Use the SOCKS v5 proxy "foobar:1080" to load all URLs.

    --proxy-server="socks4://foobar:1080"
     Use the SOCKS v4 proxy "foobar:1080" to load all URLs.

    --proxy-server="socks5://foobar:66"
     Use the SOCKS v5 proxy "foobar:66" to load all URLs.

    It is also possible to specify a separate proxy server for dif?
    ferent URL types, by prefixing the proxy server specifier with a
    URL specifier:

    Example:

    --proxy-server="https=proxy1:80;http=socks4://baz:1080"
     Load https://* URLs using the HTTP proxy "proxy1:80". And
    load http://*
     URLs using the SOCKS v4 proxy "baz:1080".


  --no-proxy-server
    Disables the proxy server. Overrides any environment variables
    or settings picked via the options dialog.


  --proxy-auto-detect
    Autodetect proxy configuration. Overrides any environment vari?
    ables or settings picked via the options dialog.


  --proxy-pac-url=URL
    Specify proxy autoconfiguration URL. Overrides any environment
    variables or settings picked via the options dialog.

其中 ?proxy-server= 的值的格式是 [<proxy-scheme>://]<proxy-host>[:<proxy-port>]

其中 http 代理是不需要加 proxy-scheme ,以上的示例中显示 socks 代理是需要添加scheme。

比如:

在本机建立一个 socks5 代理服务器, 本地端口是 1088

google-chrome --headless --disable-gpu --proxy-server="socks5://127.0.0.1:1088" --print-to-pdf https://www.chromestatus.com/

上面的示例中并没有 需要密码(用户)验证的。

puppeteer 添加代理

在以上命令行中, 代理 option 添加方式是:

--proxy-server="socks5://127.0.0.1:1088"

在 puppeteer 中,启动浏览器时添加代理:

const browser = await puppeteer.launch({headless:true, args:['--no-sandbox','--proxy-server=socks5://127.0.0.1:1088']});

具体puppeteer使用参考网上实例。

说明

有关使用账户密码credentials 的代理使用:

1 新建代理
可以在本地新建一个不用密码的代理,该代理访问有密码的代理。 然后puppeteer 中使用该无密码代理

2 页面添加代理
具体使用可以参考: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pageauthenticatecredentials

自己还没使用过.

参考文章:

chrome 安装 https://3water.com/article/153596.htm

puppeteer api 说明 https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md

代理问题 https://github.com/GoogleChrome/puppeteer/issues/336

puppeteer 官方文档 https://pptr.dev/#?product=Puppeteer&version=v1.5.0&show=api-class-page

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 常用方法经典总结
Jan 28 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
JavaScript中document对象使用详解
Jan 06 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
基于javascript实现表格的简单操作
May 21 Javascript
ReactNative页面跳转实例代码
Sep 27 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
JavaScript 中使用 Generator的方法
Dec 29 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
微信小程序入门之指南针
Oct 22 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 #Javascript
详解angular2 控制视图的封装模式
Dec 27 #Javascript
JavaScript原型对象原理与应用分析
Dec 27 #Javascript
angular6 填坑之sdk的方法
Dec 27 #Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 #Javascript
React降级配置及Ant Design配置详解
Dec 27 #Javascript
详解Ant Design of React的安装和使用方法
Dec 27 #Javascript
You might like
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
js实现无缝轮播图
2020/03/09 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python collections模块使用方法详解
2019/08/28 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
快餐店的创业计划书范文
2014/01/29 职场文书
元旦促销方案
2014/03/15 职场文书
开学典礼演讲稿
2014/05/23 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
加强作风建设工作总结
2014/10/23 职场文书
助学感谢信范文
2015/01/21 职场文书
销售开票员岗位职责
2015/04/15 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android