нумерация страниц с помощью Chromeless в node.js

1

Я использую безболезненный безголовый браузер на AWS Lambda.

Я пытаюсь выяснить, как разбивать контент, но я новичок в узле и async/жду.

Это мой код:

const Chromeless = require('chromeless').default

async function run() {
  const chromeless = new Chromeless({})

  var results = [];

  const instance = await chromeless
    .goto('https://www.privacyshield.gov/list')

  for (i = 0; i < 3; i++) 
  { 
    console.log('in for');
    instance
    .html()
    .click('a.btn-navigate:contains("Next Results")')
    .wait(3000)
    results.push(html)
  }

  await chromeless.end()
}

run().catch(console.error.bind(console))

но я получаю ошибку:

TypeError: Cannot read property 'html' of undefined

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

Теги:
pagination

1 ответ

1

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

const { Chromeless } = require('chromeless')

async function run() {
  const chromeless = new Chromeless()
  let curpos = chromeless
    chromeless.goto('https://www.privacyshield.gov/list')
    .press(13)
    .wait(3000); 
  const page1 = await curpos.html()

  curpos = curpos.click('a.btn-navigate')
    .wait(3000);
  const page2 = await curpos.html()

  curpos = curpos.click('a.btn-navigate')
    .wait(3000);
  const page3 = await curpos.html()

  console.log(page1) 
  console.log("\n\n\n\n\n\n\n")
  console.log(page2)
  console.log("\n\n\n\n\n\n\n")
  console.log(page3)

  await chromeless.end()
}

run().catch(console.error.bind(console))

Надеюсь, вы сможете оттуда добраться до него.

Интересно, что мне удалось преобразовать код ES5 и отладить его.

Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню