Node.js 使用两个
元素解析Node.js 使用两个,node.js,cheerio,Node.js,Cheerio,元素解析,仅使用包含文本“A:”的元素抓取 以下是我正在使用的source部分: <div class="entry-content"> <div class="at-above-post-cat-page addthis_tool" data-url="https://www.factcheck.org/2018/03/meme-falsely-claims-exposed-snopes-com/"></div> <p><spa
,仅使用包含文本“A:”的元素抓取
以下是我正在使用的source部分:
<div class="entry-content">
<div class="at-above-post-cat-page addthis_tool" data-url="https://www.factcheck.org/2018/03/meme-falsely-claims-exposed-snopes-com/"></div>
<p><span><span>Q:</span> </span>Did FactCheck.org expose Snopes.com as an “extremely liberal propaganda site”?</p>
//grab this <p> element always containing <span>A:</span>:
<p><span><span>A:</span> </span>No. That false claim was made in a meme circulating online.<!-- AddThis Advanced Settings above via filter on get_the_excerpt --><!-- AddThis Advanced Settings below via filter on get_the_excerpt --><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons above via filter on get_the_excerpt --><!-- AddThis Share Buttons below via filter on get_the_excerpt --></p>
<div class="at-below-post-cat-page addthis_tool" data-url="https://www.factcheck.org/2018/03/meme-falsely-claims-exposed-snopes-com/"></div>
<p><!-- AddThis Share Buttons generic via filter on get_the_excerpt --></p>
</div>
我从两个元素中获取文本
当我这样做时:
let rating = $(meta).children('div.entry-content').children('p').text().trim();
let rating = $(meta).children('div.entry-content').children('p').next().text().trim();
或者这个:
let rating = $(meta).children('div.entry-content').children('p').eq(1).text().trim();
我得到一个空字符串您可以通过以下方式得到第二个p子项:
$("p:nth-of-type(2)")
或者是专门有A:with:
$("p:has(span:has(span:contains(A:)))")
或者你可以像CSM一样在CSS外面乱搞,建议
这是在没有内容中的JavaScript注释的Calayo中工作的:$meta。如果你愿意提交答案,我很乐意接受