Cheerio:对于类选择器,是否有endsWith之类的东西?

问题描述 投票:0回答:1

我正在尝试提取类名以-name结尾的网页上的所有链接。

console.log($('a.-name', html).text().trim());

是否有类似正则表达式的方法来实现相同目的?

console.log($('a.*-name', html).text().trim());
node.js npm web-scraping cheerio jsonframe-cheerio
1个回答
0
投票

您可以使用[class$="-name"]查找以-name结尾的类属性。然后,您可以将匹配过滤为仅也是a标签的匹配。

console.log($('[class$="-name"]').filter('a').text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="foo-name">foo-name</div>

<div class="nothing">nothing</div>


<div>
   <a class="fee-name" href="/">fee-name</a>
</div>

但是,由于这是原始属性搜索,因此如果同一标签上还有其他类名,并且它们在您要定位的类名之后,则该方法将不起作用。

对此,我看不到任何内置方法。您可能必须收集所有a标签,然后编写自己的过滤器函数以使用自己的代码检查类名称属性。

© www.soinside.com 2019 - 2024. All rights reserved.