详解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 扩展方法
May 06 Javascript
JS修改css样式style浅谈
May 06 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
jQuery 设置 CSS 属性示例介绍
Jan 16 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
Jun 09 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
开源的javascript项目Kissy介绍
Nov 28 Javascript
JavaScript中的比较操作符&gt;、=、
Dec 31 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
Nov 02 Javascript
js中获取jsp表单中radio类型的值简单实例
Aug 15 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
Jan 10 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 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
javascript 函数速查表
2010/02/07 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
Python发送Email方法实例
2014/08/21 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
django框架创建应用操作示例
2019/09/26 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
狼和鹿教学反思
2014/02/05 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
高中校园广播稿
2014/10/21 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
志愿者工作心得体会
2016/01/15 职场文书
2019年大学推荐信
2019/06/24 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL