【发布时间】:2020-11-19 21:23:54
【问题描述】:
我想获取站点“https://unsplash.com/s/photos/india”中图像元素的前 6 个 src。但是,我可以获得前 3 张图像的图像 src,而不是最后 3 张图像。我很困惑,因为它们的图像元素都是一样的。
My Cheerio NodeJS code in here
for (var i=0 ; i<numsrc; i++){
var selector1 = 'div:nth-child(' + (i+1) + ') > figure > div > div._3A74U > a > div > img'
photossrc = $ (selector1).attr('src')
if (photossrc== undefined)
photossrc=''
var tempData = JSON.parse('{"src":"' + photossrc + '"}')
data.push (tempData)
}
我在附图中运行上述内容后的输出
您可以看到前 3 个元素包含 url,但不包含最后 3 个元素。 Cheerio 可以提取嵌套属性是否有限制?我设置了一个 setTimeout,但它没有帮助。
【问题讨论】:
-
Unsplash 有官方 API。使用它。
-
有些css是动态的,你应该做一些更简单的事情,比如
img[src*=photo] -
感谢@pguardiario 指出动态css。除非我滚动页面,否则它不会出现。然后会出现css。 Cheerio 将无法做到这一点。我通过寻找“下载照片”找到了另一种获取 css 的方法。
标签: javascript node.js web-scraping cheerio