Получение текста div внутри вложенной таблицы td с помощью Cheerio - PullRequest
2 голосов
/ 15 июня 2019

Используя Cheerio и axios, я пытаюсь получить текст «Version» и «1.7.0» из div-ов внутри вложенных tds в таблице из торговой площадки vscode page

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

const cheerio = require('cheerio');
const axios = require('axios');

const url = "https://marketplace.visualstudio.com/items?itemName=bloumbs.borders-dark"

axios.get(url).then((response) => {
   const $ = cheerio.load(response.data)

   // With this I get no response:
   $('.ux-table-metadata > tbody > tr > td > div').each(() => {
      console.log($(this).text());
   });

   // And with this method, it return "null"
   let version = $('.ux-table-metadata tbody tr td div').html($.versionText)
   console.log(version)
})

Это раздел HTML, с которым я работаю:

<div class="ux-section-other">
  <h3 class="itemdetails-section-header right">More Info</h3>
  <div>
    <table class="ux-table-metadata">
      <tbody>
        <tr>
          <td>
            <div>Version</div>
          </td>
          <td>
            <div>1.7.0</div>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

1 Ответ

0 голосов
/ 15 июня 2019
$(".ux-table-metadata > tbody > tr > td").each(function() {
    console.log($(this).find("div").html());
});

или

$(".ux-table-metadata > tbody > tr > td").each(function() {
    console.log($(this).children().html());
});

протестировано с помощью jquery

...