详解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中Eval函数的使用说明
Oct 11 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
Mar 18 Javascript
纯js简单日历实现代码
Oct 05 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
JQuery Mobile实现导航栏和页脚
Mar 09 Javascript
js微信分享API
Oct 11 Javascript
angular ng-click防止重复提交实例
Jun 16 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
vue实现多级菜单效果
Oct 19 Javascript
JavaScript如何判断input数据类型
Feb 06 Javascript
JSONP 的原理、理解 与 实例分析
May 16 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
最省空间的计数器
2006/10/09 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python Deque 模块使用详解
2014/07/04 Python
Python脚本实现网卡流量监控
2015/02/14 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python实现的科学计算器功能示例
2017/08/04 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
tensorflow获取变量维度信息
2018/03/10 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
如何在django中添加日志功能
2020/02/06 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
2015年法务工作总结范文
2015/05/23 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python