Problème script mass-add LinkedIn

Hello les growth hacker,

J’ai récupéré il y a un petit moment un script de mass-add linkedin qui me permet d’ajouter en masse après une recherche ciblée.

Ca faisait longtemps que je ne l’avais pas fait tourné et aujourd’hui je rencontre le problème suivant : le script ne « clique » sur « se connecter » que pour le premier profil qui apparaît dans le résultat de la recherche avant de flip à la page suivante.

Mes compétences en développement étant très limitées (j’apprends en autodidacte depuis peu) - quelqu’un pourrait-il m’aider à trouver ce que je dois corriger dans le script suivant :
var leftClick = function(el, etype) {

 if (el.fireEvent) {

   el.fireEvent(‘on’ + etype);

 } else {

   var evObj = document.createEvent(‘Events’);

   evObj.initEvent(etype, true, false);

   el.dispatchEvent(evObj);

 }

}var getPersons = function() {

 var lines = $(‘.search-result__info’);

 var persons = []; for (var i = 0; i < lines.length; i++) {

   res.push({

     name: $(lines[i]).find(‘.actor-name’).text(),

     position: $(lines[i]).find(‘.subline-level-1’).text(),

     geo: $(lines[i]).find(‘.subline-level-2’).text().trim().replace(/\\n/g, ‘’)

   })

 } return persons;

}var goNextPage = function() {

 if ($(‘.next-text’).length) {

   leftClick($(‘.next-text’).get(0), ‘click’)

 } else {

   alert(‘Finish’)

 }

}var isLastPage = function() {

 $(‘.next-text’).length == 0;

}var addPersons = function(indc, cb) {

 var element = $(‘.search-result__actions--primary:contains(“onnect”)’).get(indc)  if (!element){    cb()

 }

 else {

   addPerson(element, function() {

     addPersons(indc+1, cb)

   })

 }

}var addPerson = function(element, cb) {

 leftClick($(element).get(0), ‘click’)

 var btnAddPerson = ‘.send-invite__actions button:last’  waitBtn(btnAddPerson, function() {

   leftClick($(btnAddPerson).get(0), ‘click’)

   cb()

 })

}var waitBtn = function(btn, cb) {

 $(‘.send-invite__actions button:last’)  if ( $(btn).length) cb();

 else {

   setTimeout(function(){waitBtn(btn, cb)}, 50)

 }

}var parse = function() {

$(‘html, body’).animate({

   scrollTop:$(‘body’).height()

 }, ‘slow’); setTimeout(function() {

   var persons = getPersons();

   res.push(...persons);   addPersons(0, function() {

    if (!isLastPage()) {

       goNextPage();       setTimeout(function() {

         parse();

       }, 3000)

     }

  })

 }, 2000)

}var res = [];

parse();

Merci pour votre aide :slight_smile:

Hello voici un script fonctionnel, passes ton compte en Anglais, va dans les suggestions dans my network
Lance la console, et cole ce script, j’ai modifié les délais que tu peux raccourcir mais gaff même comme cela j’atteins la limite, donc n’abuses pas des bonnes choses :wink:

async function moreConnectionsPlease() {
    // maximum limit of Connect buttons clicked
    const LIMIT = 89;
    // wait in ms before each scroll
    const SCROLL_TIMEOUT = 10000;
    // bulk scroll will scroll this amount of times
    const BULK_SCROLL_COUNT = 30;
    // wait in ms before each click
    const CLICK_DELAY = 30000;
    // if this amount of connections in the page, time to click
    const MINIMUM_CONNECTS_TO_CLICK = 60;
    // if this amount of connections in the page, time to scroll
    const MINIMUM_CONNECTS_TO_SCROLL = 10;

    var connects = 0;
    var fails = 0;

    // retrieves array « Connect » buttons
    function selectButtonElements() {
        return […document.querySelectorAll(«button span»)].filter(a =>
            a.textContent.includes(«Connect»)
        );
    }

    // scrolls to the bottom of the page
    async function singleScroll() {
        return new Promise(resolve => {
            setTimeout(() => {
                window.scrollTo(0, document.body.scrollHeight);
                console.log(«scroll!»);
                resolve();
            }, SCROLL_TIMEOUT);
        });
    }

    // delays an html element click
    async function singleClick(elem) {
        return new Promise(resolve => {
            setTimeout(() => {
                elem.click();
                resolve();
            }, CLICK_DELAY);
        });
    }

    // scroll to the bottom of the page several times
    async function bulkScroll() {
        for (let i = 0; i < BULK_SCROLL_COUNT; i++) {
            await singleScroll();
        }
    }

    // click on all but a few Connect buttons
    async function bulkClick() {
        let elements = selectButtonElements();
        console.log(«elements length: », elements.length);
        for (let i = 0; i < elements.length - MINIMUM_CONNECTS_TO_SCROLL; i++) {
            try {
                await singleClick(elements[i]);
                console.log(«click!»);
                connects++;
            } catch (err) {
                fails++;
            }
        }
    }

    // the list of people to connect to must keep a minimum amount of people
    function isManyConnects(amount) {
        return selectButtonElements().length >= amount;
    }

    do {
        if (isManyConnects(MINIMUM_CONNECTS_TO_CLICK)) {
            console.log(«There are plenty of connections, time to click…»);
            await bulkClick();
        } else {
            console.log(«Out of connections, need to scroll…»);
            await bulkScroll();
        }
        console.log(New Connections: $ {
                connects
            }
            Failed clicks: $ {
                fails
            });
    } while (connects < LIMIT);
}

moreConnectionsPlease();
1 « J'aime »

J’avais oublié ce topic ! Merci de l’avoir déterré :slight_smile:

Je teste ça dans la journée, ca m’a l’air costaud ! Merci beaucoup

sinon Prospectin fait cela très bien et en toute sécurité

ok je test ton tool, il ressemble fortement a Linkedin helper qui est flag de chez flag…J’avais eu sur Linked helper même avec des settings bas des warning de Linkedin.
Du coup Jarvee en mode logiciel avec un bon proxy FR et 4g me parait plus robuste. Qu’en penses-tu ? As tu testé, as tu eu des blocages de compte ?

je suis entrain de tester le tool, il ne fonctionne pas :confused: dommage

qu’est ce qui ne marche pas ?

l’intérêt de prospection c’est qu’il utilise l’ordinateur et la connexion pour « piloter des actions sur Linkedin comme un humain »
Pas besoin de proxy

Ça manque d’un tuto je suis devant mon écran a essayer deseperement de créer une campagne rien ne s’affiche :confused:

autant pour moi je viens de me rendre compte de mon erreur, il faut charger une page linkedin et le plugin se lance tout seul ok j’explore et je fais des feedbacks merci pour le tool

Oui d’abord se connecter, ensuite lancer une recherche dans Linkedin, puis créer une campagne en cliquant sur l’icône du plugin sous chrome qui va récupérer les contacts dans Prospectin. Ensuite un peut générer des actions de connection, message, suivre …