详解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+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
JS 实现图片直接下载示例代码
Jul 22 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
js拼接html字符串的注意事项
Oct 13 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
js模拟F11页面全屏显示
Sep 17 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
php输出表格的实现代码(修正版)
2010/12/29 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
小程序实现多选框功能
2018/10/30 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
Python 处理图片像素点的实例
2019/01/08 Python
python opencv摄像头的简单应用
2019/06/06 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
银行业务授权委托书
2014/10/10 职场文书
女儿满月酒致辞
2015/07/29 职场文书
实用求职信模板范文
2019/05/13 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python