JS итерация по объекту

#javascript #loops #object #puppeteer

Вопрос:

Я пытаюсь создать скребок для кукольника. Он должен пройти по URL-адресам, хранящимся в объекте, и выполнить функцию следующим образом:

     (async () => {const url = 'https://majestic.com/';
        const browser = await puppeteer.launch({headless: true});
        const page = await browser.newPage();
        await page.setCookie(... cookies);
        await page.goto('https://majestic.com/reports/site-explorer?q='  newDataDomains[2]['Domain']   'amp;oq='   newDataDomains[2]['Domain']   'amp;IndexDataSource=F');
    
        const rootDomainTF = await page.evaluate(() => (document.querySelector("#trust_flow_chart > svg > g > g > text").textContent));
        console.log('Root Domain TF = '   rootDomainTF);
};
 

Он переходит по URL-адресу, созданному с помощью URL-адреса из домена (в настоящее время только одного в качестве примера), и получает значение некоторого html.

Объект newDataDomains содержит около 100 элементов, похожих на

 [
  { Domain: 'surfury.co.uk', 'Number of drops': 1 },
  { Domain: 'tal0ne.co.uk', 'Number of drops': 1 },
  { Domain: 'devonsfinest.co.uk', 'Number of drops': 2 }
]
 

Переменная количества капель также важна, на каждой итерации функция будет немного отличаться в зависимости от значения количества капель

Я написал код для того, что должно быть очищено, но теперь мне нужен способ сообщить программе: «просмотрите URL-адреса этого объекта, а также сохраните значение обоих свойств. Есть ли помощь в том, как это реализовать? Заранее спасибо

Комментарии:

1. Добро пожаловать в SO! Мне не ясно, какое количество капель используется в коде Кукольника, но есть ли проблема с использованием обычного цикла или forEach , for..of и т. Д.? newDataDomains.forEach(e => { your puppeteer code }) ? Вы бы использовали e.Domain и e["Number of drops"] для доступа к свойствам определенной записи внутри цикла.

2. Это работает само по себе, когда я пытаюсь просто вести журнал консоли, но, к сожалению, код кукольника этого не делает. imgur.com/URjEK47

3. Идея заключается в том, чтобы просто перейти в домен из объекта и захватить значение html, кода-марионетки, который я взял с их страницы разработки

Ответ №1:

Используйте цикл For для итерации по объекту и объявите два массива, один для URL-адреса, а другой для количества отбрасываний (именно так вы пройдете по объекту и сохраните его значения). и для доступа к значениям объектов используйте пример метода dot: objectName.url.