问题描述
所以我正在为一些网站做自动化,我想同时打开多个(6-10)个实例,目的是使用工作线程来做这个,但问题是我打开的实例越多,它得到的速度就越慢正常或可以修复
并且正在使用代理,每个实例都有自己的代理代码:
const browser = await puppeteer.launch({
executablePath: "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",headless: false,devtools: false,ignoreHTTPSErrors: true,ignoreDefaultArgs: "--enable-automation",args: [
" --enable-automation","--no-sandBox","--ignore-certificate-errors","--enable-features=NetworkService","--allow-running-insecure-content","--disable-web-security",`--window-size=${options.width},${options.height}`,"--proxy-server=" + Proxyy,// '--user-data-dir=C:\\Users\\USER\\AppData\\Local\\Google\\Chrome\\User Data'
],});
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(0);
await page.authenticate({
username: Puser,password: Ppass,});
非常普通的东西和工作线程代码
Multi_processing = (() => {
return async () => {
if (isMainThread) {
//? -------------------------------------------------------------------------- */
//? Proxy input */
//? -------------------------------------------------------------------------- */
let ProxyList = await prompt(" Input Proxy List ");
Proxy_list = ProxyList.split("\r");
console.log(`${Proxy_list.length} tasks has been started `.green.bold)
//! -------------------------------------------------------------------------- */
//! Starting MultiThreading */
//! -------------------------------------------------------------------------- */
for (let i = 0; i < Proxy_list.length; i++) {
new Worker(__filename,{
workerData: {
Proxy_list: Proxy_list[i],},});
}
} else {
/* -------------------------------------------------------------------------- */
/* Proxie spliting */
/* -------------------------------------------------------------------------- */
parts = workerData.Proxy_list.split(":");
if (parts.length == 4) {
Aproxy = parts[0] + ":" + parts[1];
pUser = parts[2];
pPass = parts[3];
}
// console.log("Proxies : ".green + parts);
console.log("Worker Of ID ".green + threadId);
/* -------------------------------------------------------------------------- */
/* Main Function */
/* -------------------------------------------------------------------------- */
try {
MAIN(pUser,pPass,Aproxy,threadId);
} catch (e) {
console.log("Failed".red);
console.log(e);
}
}
};
})();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)