Сессии и параллелизм и как они связаны - PullRequest
1 голос
/ 03 мая 2020

Я создаю PuppeteerCrawler и мне нужно войти на определенный сайт. Но веб-сайт не позволяет нескольким браузерам использовать одну и ту же учетную запись одновременно. Насколько я понимаю, сеанс сохраняется до одного IP-адреса, но как я могу сделать этот сеанс также эксклюзивным для экземпляра браузера?

Я также использую 10 входных пользователей для поворота с помощью следующей функции.

exports.authenticate = async (page) => {
    const  { users }  = await Apify.getInput();
    const user = Math.round(Math.random() * 10 ); 

    let isLogged = await loggedCheck(page);

    if (!isLogged) {
        log.debug(`Cookies from cache didn't work, trying to login..`);
        await page.type('input[name="email"]', users[user].username);
        await page.type('input[name="password"]', users[user].password);
        await page.click('input[name="submit"]');
        isLogged = await loggedCheck(page);
    }

    if (!isLogged) {
        throw new Error('Didn\'t work!');        
    }
};

1 Ответ

1 голос
/ 04 мая 2020

По умолчанию IP-адреса сеансов являются эксклюзивными для экземпляра браузера, и в PuppeteerCrawler ими можно управлять с помощью SessionPool

Проверьте это, может быть полезно: https://sdk.apify.com/docs/guides/session-management

...