尝试使用jsoup收集一些网站内容,并遇到了一些信息收集问题。
我想要做的是收集所有p标签的内容 我知道你可以像这样收集第一个: 但有没有办法在不知道你想要的金额的情况下选择第一个内容? 由于.select("div#news_content_wide > p").first();
答案 0 :(得分:2)
您可以尝试div#news_content_wide > p~p
使用general sibling combinator
这里发生的事情是,任何具有兄弟p
优先级的p
将被选中,所以除了第一个之外基本上都是。
答案 1 :(得分:0)
你可以创建一个函数,将目标div作为参数,并且你不想返回段落元素... I.E. '1'(实际上为零)......
<body>
<script>
function removeElement( div, num ) {
var parent = document.getElementById( div );
var returnElems = [];
if( parent.children.length > 1 && parent.children[0].nodeType === 1 ) {
if( parent.children[0].tagName === "P") {
var paras = parent.children;
for( var i = 0; i < paras.length; i++) {
if( i != (num - 1) ) {
returnElems.push(paras[i]);
}
}
}
}
return returnElems;
}
</script>
<div id="news_content_wide">
<p>DON'T RETURN THIS</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</body>
var elems = removeElement("news_content_wide", 1);
console.log(elems);