详解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 相关文章推荐
淘宝搜索框效果实现分析
Mar 05 Javascript
浅谈jQuery事件绑定原理
Jan 02 Javascript
js查看一个函数的执行时间实例代码
Sep 12 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
Jun 01 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
Mar 14 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
May 14 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
JS基于贪心算法解决背包问题示例
Nov 27 Javascript
js事件on动态绑定数据,绑定多个事件的方法
Sep 15 Javascript
vue自定义全局共用函数详解
Sep 18 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
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
discuz的php防止sql注入函数
2011/01/17 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
python基础教程之Hello World!
2014/08/29 Python
Python中datetime常用时间处理方法
2015/06/15 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
诉前财产保全担保书
2014/05/20 职场文书
银行进社区活动总结
2014/07/07 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
关于环保的广播稿
2015/12/17 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle