【发布时间】:2021-11-19 14:21:27
【问题描述】:
我正在尝试抓取一个结构如下的网站:
var elems = document.getElementsByClassName("breakfast");
elems = [...elems] // Converts HTMLCollection to Array
elems = elems.map(elem => elem.children[0])
elems = elems.filter(elem => elem !== undefined)
elems = elems.map(elem => elem.getAttribute("title"))
document.write(elems)
<div class="breakfast">
<p title="1">Bagels</p>
</div>
<div class="breakfast">
</div>
<div class="breakfast">
<p title="2">Bread</p>
</div>
<div class="breakfast">
<p title="3">Toast</p>
</div>
<div class="breakfast">
</div>
上面的 Javascript 工作得很好,但我想要 undefined 值,而不是它们不显示,我希望它们为 0。
我的第一个想法是使用三元运算符,但是我不知道如何创建一个新的 HTML 元素,其中可以访问子元素或属性等元素。我知道HTMLParagraphElement,遗憾的是文档不足以让我弄清楚如何做到这一点。
【问题讨论】:
-
首先删除
elems = elems.filter(elem => elem !== undefined)然后 -
@mplungjan 到目前为止,在这种情况下删除它会产生错误。
标签: javascript html web-scraping