如何使用puppeteer设置代理?我尝试了以下方法:
(async () => {
const browser = await puppeteer.launch({
headless: false,
args: [
'--proxy-server=http://username:password@zproxy.luminati.io:22225'
]
});
const page = await browser.newPage();
await page.goto('https://www.whatismyip.com/');
await page.screenshot({ path: 'example.png' });
//await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我得到消息:
Error: net::ERR_NO_SUPPORTED_PROXIES at https://www.whatismyip.com/
Run Code Online (Sandbox Code Playgroud)
在控制台上。如何正确使用代理?
我还尝试了以下方法:
const browser = await puppeteer.launch({
headless: false,
args: [
'--proxy-server=zproxy.luminati.io:22225'
]
});
const page = await browser.newPage();
page.authenticate({
username: 'username',
password: 'password'
})
await page.goto('https://www.whatismyip.com/');
Run Code Online (Sandbox Code Playgroud)
但结果相同。
我正在阅读airbnb javascript指南。有一个特别的声明,说:
不要使用迭代器。首选JavaScript的高阶函数,而不要使用for-in或for-of等循环。
他们给出上述声明的原因是:
这执行了我们不变的规则。处理返回值的纯函数比副作用更容易推论。
我无法区分给出的两种编码实践:
const numbers = [1, 2, 3, 4, 5];
// bad
let sum = 0;
for (let num of numbers) {
sum += num;
}
sum === 15;
// good
let sum = 0;
numbers.forEach((num) => {
sum += num;
});
sum === 15;
Run Code Online (Sandbox Code Playgroud)
谁能解释,为什么应该forEach优先于常规for循环?真的有什么不同?使用常规药有副作用iterators吗?
在以下代码行中:
internalWhiteList = process.env.INTERNAL_IP_WHITELIST.split( ',' )
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说,Object is possibly undefined.使用名为dotenv的模块从位于根目录的文件env中加载变量.process.env.env
我怎么能告诉打字稿,这process不是未定义的?这是我的tsconfig.json:
{
"compilerOptions": {
"target": "esnext",
"outDir": "../dist",
"allowJs": true,
"module": "commonjs",
"noEmitOnError": false,
"noImplicitAny": false,
"strictNullChecks": true,
"sourceMap": true,
"pretty": false,
"removeComments": true,
"listFiles": false,
"listEmittedFiles": false
},
"exclude": [
"node_modules",
"test/",
"**/*.spec.ts"
]
}
Run Code Online (Sandbox Code Playgroud)