我使用的是Pupeteer,我try 在每个页面上使用一个代理,我使用的是这个名为puppeteer-page-proxy的包

const puppeteer = require('puppeteer');
var useProxy    = require('puppeteer-page-proxy');
var browser     = await puppeteer.launch({});

const page  = await browser.newPage();
useProxy(page, 'http://' + myProxy)

日志(log):

useProxyPer[target.constructor.name](target, data);
                               ^
TypeError: useProxyPer[target.constructor.name] is not a function

这将返回一个错误,我不知道为什么.我找到了an issue个问这个问题的,a dev个回复了自己的解决方案包.

然而,如果我试着这样做,我得到的是完全相同的东西

const useProxy  = require('@lem0-packages/puppeteer-page-proxy');
....
useProxy(page, 'http://' + myProxy)

日志(log):

useProxyPer[target.constructor.name](target, data);
TypeError: useProxyPer[target.constructor.name] is not a function

这并不能解决问题.A用户 comments

对我来说,这个问题似乎没有解决,在Puppeteer 21.3.x中出现了同样的问题,但在21.2.x中没有.

如果我判断我的Puppeteer版本为npm -v puppeteer,我得到的是9.2.0,这与用户引用的内容相差甚远.如果这就是问题所在,我如何安装Puppeteer 21.2.x?这似乎只是一个版本问题.

推荐答案

这里有一个对我很管用的设置:

const puppeteer = require("puppeteer");
const useProxy = require("@lem0-packages/puppeteer-page-proxy");

(async () => {
  const browser = await puppeteer.launch();
  const [page] = await browser.pages();
  await useProxy(page, null /* or pass a proxy string; see docs */);
  await page.goto("http://www.example.com");
  console.log(await page.title()); // => Example Domain
  await browser.close();
})();

Package.json:

{
  "dependencies": {
    "@lem0-packages/puppeteer-page-proxy": "^1.3.3",
    "puppeteer": "^21.2.0"
  }
}

(运行npm i以安装上面列出的版本).

Javascript相关问答推荐

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

if/else JavaScript中的条件行为

类型脚本中只有字符串或数字键而不是符号键的对象

拖放仅通过 Select 上传

使用JQuery单击元素从新弹出窗口获取值

XSLT处理器未运行

在使用REACT更改了CSS类之后,无法更改CSS样式

如何访问此数组中的值?

FireBase云函数-函数外部的ENV变量

如何使本地html页面在重新加载时保持当前可隐藏部分的打开状态?

用另一个带有类名的div包装元素

react 路由DOM有条件地呈现元素

使用props 将VUE 3组件导入JS文件

使用Java脚本在div中创建新的span标记

使用jQuery每隔几秒钟突出显示列表中的不同单词

如何在Java脚本中添加一个可以在另一个面板中垂直调整大小的面板?

Google OAuth 2.0库和跨域开放程序的问题-策略错误

已在EventListener中更新/更改异步的React.js状态对象,但不会导致组件重新呈现

我如何让我的弹力球在JavaScript和HTML画布中相互碰撞后改变 colored颜色 ?

我正在为我的单选按钮在HTML中设置一个值.使用Java脚本,我如何才能获得该值?