Кукольник в черлидинг лом от сайта Dynami c для уточнения данных c - PullRequest
0 голосов
/ 22 марта 2020

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

, поэтому я попытался использовать кукловод, чтобы удалить динамическую таблицу c, сгенерированную веб-сайтом. , Мне удается получить стол, но когда я пытаюсь разобрать его в cheerio, кажется, что ничего не происходит

const scrapeImages = async (username) => {
   console.log("test");
   const browser = await puppeteer.launch({
      args: ['--no-sandbox']
    });
    const page = await browser.newPage();

    await page.goto('https://www.publicmutual.com.my/Our-Products/UT-Fund-Prices');
   await page.waitFor(5000);

  const data = await page.evaluate( () => {

        const tds = Array.from(document.querySelectorAll('div.form-group:nth-child(4) > div:nth-child(1) > div:nth-child(1)'))
    return tds.map(td => td.innerHTML)
    });

    await browser.close();

    console.log(data);

    let $ = cheerio.load(data);

      $('table > tbody > tr > td').each((index, element) => {

        console.log($(element).text());

    });

 };

  scrapeImages("test");

в конечном счете, я не уверен, как я могу сделать это напрямую только с кукловодом вместо того, чтобы направлять его на cheerio для например, я хотел бы очистить только выбранные средства, например, если вы посетите веб-сайт здесь https://www.publicmutual.com.my/Our-Products/UT-Fund-Prices

я хотел бы получить только средства от аббревиатуры - PAIF - PAGF - PCIF

вместо всех них. не уверен, как я могу сделать это только с кукловодом?

1 Ответ

1 голос
/ 22 марта 2020

На этой странице уже jQuery, что даже лучше, чем у cheerio:

const rows = await page.evaluate( () => {
  return $('.fundtable tr').get().map(tr => $(tr).find('td').get().map(td => $(td).text()))
}
...