кукловод выполняет функцию js на выбранной странице - PullRequest
0 голосов
/ 11 февраля 2019

Это проанализированная страница https://www.diretta.it/.

На этой странице содержимое следующих дней динамически загружается с помощью js без изменения URL-адреса сайта (вы можете попробовать его в правом верхнем углутаблица).

Используя puppeteer со следующим кодом

await page.goto ('https://www.diretta.it/');

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

функция в js, исполняемом с терминала на день перемен:

> set_calendar_date ('1')

1 Ответ

0 голосов
/ 11 февраля 2019

То, что вы ищете, это функция page.evaluate().Эта функция позволяет запускать любую функцию JS в контексте страницы.

Проще говоря, запуск page.evaluate() сродни открытию инструментов Dev и непосредственному написанию set_calendar_date('1').

Вот рабочий фрагмент, не стесняйтесь передать {headless: false}puppeteer.launch() если вы хотите, чтобы это работало вашими глазами.

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.diretta.it/');
  await page.evaluate(() => {
    set_calendar_date ('1');
  });
  await page.waitFor(500); //Wait a bit for the website to refresh contents

  //Updated table is now available
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...