как получить текст внутри div в кукловоде

У меня такая же ошибка (Parse Error, проблема с разбором пакета) при попытке установить пакет .apk из электронной почты. Я смог обойти эту проблему, установив установщик сторонних пакетов ApKatcher:

http://www.addictivetips.com/mobile/install-android-apps-from-gmail/

ApKatcher - не единственное решение. Мой коллега столкнулся с проблемой, установив Astro File Manager.

Вы можете найти оба приложения в Android Marketplace.

1
задан Koh Shuan Jin 20 March 2019 в 01:13
поделиться

1 ответ

Если ваша цель - получить текст, вы можете обойти это с помощью JS на странице DOM.
Измените это:

const lis = await page.$(".data-table > tbody > tr > td");

const appInfo = await page.$("a.icon");

for (const content of lis) {
  const name = await content.$("div.appname");
  const gameName = await page.evaluate(name => name.innerText, name);
  console.log("Game Name: ", gameName);
}

На это:

const appInfo = await page.$("a.icon");

const texts = await page.evaluate(() => {
  const textsToReturn = [];

  const elems = Array.from(document.querySelectorAll('.data-table > tbody > tr > td'));

  for (const el of elems) {
   textsToReturn.push(el.querySelector('div.appname').innerText)
  }

  // If I'm not mistaken, puppeteer doesn't allow to return complicated data structures, so we'll stringify
  return JSON.stringify(textsToReturn)
})

// And here is your game names
console.log('Game names', JSON.parse(texts));

Примечание: этот код не был протестирован на реальной HTML-странице, так как нет примера. 113]
Но вы должны получить представление о том, как переопределить логику кукловода с помощью нативных методов DOM, чтобы достичь цели.

0
ответ дан Grynets 20 March 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: