【问题标题】:How To Select one of the same multiple elements in cheerio nodejs?如何在cheerio nodejs中选择相同的多个元素之一?
【发布时间】:2021-10-01 08:24:20
【问题描述】:

我正在尝试从页面中抓取链接,但我现在面临的问题是我想从锚标记中抓取 href,但它有多个标签,里面没有类他们。

看起来像这样

<div class="class1">
<a href="sample.com">Some random text</a>
<a href="example.com">Some random text</a>
</div>

现在我想获取 example.com,但是当我尝试 find(".class1").find("a").attr("href"); 时,它返回给我 sample.com。

我想做这样的事情来获取 example.com 而不是 sample.com find(".class1").find("a")[1].attr("href"); 返回 example.com

请有人帮我解决这个问题。我是cheerio 的新手,cheerio 的文档让我很困惑。

【问题讨论】:

  • “我想做这样的事情”很好,看起来很整洁,就去做,结果如何?另外,find(.class1).find("a:last-child") 呢?
  • @jeremy-tille 我越来越不确定find(".class1").find("a")[1].attr("href"); ...是的!当我使用 .find("a:last-child") 时,我得到了 example.com,但如果不止 2 个呢?像 11 个锚标签,那么我怎样才能获得第 4 个??
  • 使用.find("a:nth-child(4)")(这是一个标准的 CSS 选择器)。我已经发布了我的评论作为答案,因为它似乎已经解决了你的问题:)

标签: javascript node.js cheerio


【解决方案1】:

您可以使用以下方法选择第 n 个 &lt;a&gt; 元素:

find(".class1").find("a:nth-child(4)").attr("href");

【讨论】:

    猜你喜欢
    • 2015-12-15
    • 2018-08-03
    • 2022-11-04
    • 2019-09-02
    • 1970-01-01
    • 2022-11-18
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多