用Cheerio在嵌套表td中获取div文本

时间:2019-06-15 13:31:40

标签: javascript html axios cheerio

我想使用Cheerio和axios,从vscode市场page

的表中嵌套的tds中的div中获取div的文本“ Version”和“ 1.7.0”

我已经尝试过这种方法以及其他多种方法来将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 :(得分:0)

$(".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测试