【发布时间】:2018-07-20 04:54:59
【问题描述】:
HTML:
<div class="someclass">
<h3>First</h3>
<strong>Second</strong>
<hr>
Third
<br>
Fourth
<br>
<em></em>
...
</div>
从上面的div节点我想得到hr之后的所有子文本节点("Third","Fourth",...可能还有更多)
如果我这样做了
document.querySelectorAll('div.someclass>hr~*')
我收到 NodeList [ br, br, em, ... ] - 没有文本节点
下面有
document.querySelector('div.someclass').textContent
我将所有文本节点作为单个字符串获取
我可以得到每个文本节点为
var third = document.querySelector('div.someclass').childNodes[6].textContent
var fourth = document.querySelector('div.someclass').childNodes[8].textContent
所以我尝试了
document.querySelector('div.someclass').childNodes[5:] # SyntaxError
document.querySelector('div.someclass').childNodes.slice(5) # TypeError
那么有什么方法可以获取从hr 节点开始的所有子文本节点?
更新
我忘了说这个问题是关于网络抓取的,而不是网络开发的......我无法更改 HTML 源代码
【问题讨论】:
-
" 我得到 NodeList [ br, br, em, ... ] - 没有文本节点" 也许只是将文本放入
<p>标签中,它们也会被返回? -
@messerbill,对不起,我没有提到这个问题是关于网络抓取,而不是网络开发。我无法更改 HTML 源代码
-
S(".someClass").text()怎么样
标签: javascript web-scraping css-selectors