v2.5.2
Giriş yap

Node.js Electron Puppeteer proxy cors hatası (css ve js dosyaları yüklenmiyor)

atakan75
359 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalari nodejs ile puppeteer kullanarak bir form doldurma uygulaması yazdım. Kodum normalde çalışmakta fakat electron a taşıdığımda proxy kullanıyosam sayfada css/js dosyaları yüklenmiyor. Araştırmalarım CORS hatası olduğunu söylüyor. Hem electron hemde puppeteer tarafında web security ayarlarını kapatmama rağmen sorunu çözemedim. Kodumu aşşağıya bırakıyorum.

const puppeteer = require('puppeteer-extra')
const request = require('request');
const RecaptchaPlugin = require('puppeteer-extra-plugin-recaptcha')
const useProxy = require('puppeteer-page-proxy');

var settings = {
    country: "Turkey",
    city: "Istanbul",
    namesurname: "name surname",
    username: "testusername",
    metin: "bla bla bla",
};

const sendForm = async (numOfPages, formProxy) => {
    const browser = await puppeteer.launch({
        headless: false,
        args: [
            '--disable-web-security',
            '--disable-features=IsolateOrigins',
            '--disable-site-isolation-trials'
        ]
    });
    for (let i = 1; i <= numOfPages; i++) {
        console.log(i + ". işlem başladı");
        try {

            const page = await browser.newPage();
            await useProxy(page, 'http://192.168.1.1:8080'); //random proxy

            const data = await useProxy.lookup(page);
            if (!data) throw console.error('No data');

            await page.goto('https:help.instagram.com/contact/1784471218363829', { waitUntil: 'networkidle2' });

           // click actions

            console.log(i + ". İşlem Tamamlandı")
        } catch (error) {
            console.error('Beklenmedik bir hata oluştu tekrar deneniyor.');
            console.error(error);
            i--;
            continue;
        }

        await new Promise(resolve => setTimeout(resolve, 1000));
    }
    await browser.close();
    console.log("Tüm işlemler tamamlandı");
};

Bu kod normalde çalışmakta. Electrona taşıdığımda ise durum farklı.

Electron mainim ;

function createWindow() {

  win = new BrowserWindow({
    autoHideMenuBar: true,
    frame: false,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      webSecurity: false, 
    }
  });

  win.loadURL(`file://${__dirname}/src/login.html`);

  initIPCMain();

  // Open the DevTools.
  win.webContents.openDevTools();

  win.on("closed", () => {
    win = null;
  });

  win.webContents.on('did-finish-load', () => {
    win.webContents.insertCSS('body::-webkit-scrollbar { display: none; }')
    console.log('Tüm kaynaklar yüklendi.');
  });
};

İnternette bulduğum ve denediğim çalışmayan çözümler.

Electron tarafı için

webPreferences: {
    nodeIntegration: true,
    contextIsolation: false,
    webSecurity: false, // cors error fix
}

Puppeteer tarafı

args: [
    '--disable-web-security',
    '--disable-features=IsolateOrigins',
    '--disable-site-isolation-trials'
]

Proxy kullanmadığım zaman sayfa doğru yüklenmekte. Ama ne zaman proxy kullansam sayfada css/js dosyaları yüklenmiyor. Fakat bu durum dediğim gibi sadece electron tarafında geçerli.

Olması gereken

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!