详解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 相关文章推荐
javascript 自定义事件初探
Aug 21 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
Vue.js中的computed工作原理
Mar 22 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
vue设置默认首页的操作
Aug 12 Javascript
JavaScript 绘制饼图的示例
Feb 19 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传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP反射API示例分享
2016/10/08 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
社区工作者感言
2014/03/02 职场文书
cf收人广告词
2014/03/14 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
博士论文答辩开场白
2015/06/01 职场文书
入党函调证明材料
2015/06/19 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
python基础之文件处理知识总结
2021/05/23 Python