Кукловод, как хранить результаты в переменной объекта? - PullRequest
1 голос
/ 14 апреля 2020

Как хранить данные в переменной объекта. Я думал, что был знаком с переменными объекта, но я думаю, что нет. Я пытаюсь сохранить мои данные следующим образом.

Product:{
   Title: Bla Bla Bla
}
Product:{
   Title: Ala Ala Ala
}

Вот код, который у меня есть на данный момент.

const puppeteer = require('puppeteer');

(async () => {
    let movieURL = 'https://www.walmart.com/search/?query=&cat_id=91083';

    let productName = []
    let browser = await puppeteer.launch({ headless: true});
    let page = await browser.newPage();

    await page.goto(movieURL, {waitUntil: 'networkidle2'});

     let data = await page.evaluate(() => {
        productName = [...document.querySelectorAll('a.product-title-link')].map(a => a.innerText)

        return{
            productName
        }
    })

    console.log(data);

    await browser.close()
})();

Полученные результаты выглядят следующим образом.

{
  productName: [
    'SQ Non Chlorinated Brake Parts Cleaner',
    'Super Tech DEF Diesel Exhaust Fluid, 2.5 Gallon',
    'Mobil 1 Advanced Fuel Economy Full Synthetic Motor O ...\n',
  ]
}

Заранее спасибо, если вы, ребята или девушки, можете помочь. :) Вот некоторые вещи, которые я уже попробовал.

productName += [...document.querySelectorAll('a.product-title-link')].map(a => a.innerText)
productName[data] = {[...document.querySelectorAll('a.product-title-link')].map(a => a.innerText)}
productName = {[...document.querySelectorAll('a.product-title-link')].map(a => a.innerText)}

Все вышеперечисленное выдает ошибки и не работает.

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете в своем map() сделать что-то вроде:

(a) => ({ Product: { Title: a.innerText } })

const puppeteer = require("puppeteer");

(async () => {
  let movieURL = "https://www.walmart.com/search/?query=&cat_id=91083";

  let productName = [];
  let browser = await puppeteer.launch({ headless: true });
  let page = await browser.newPage();

  await page.goto(movieURL, { waitUntil: "networkidle2" });

  let data = await page.evaluate(() => {
    productName = [
      ...document.querySelectorAll("a.product-title-link"),
    ].map((a) => ({ Product: { Title: a.innerText } }));

    return {
      productName,
    };
  });

  console.log(data);

  await browser.close();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...