【发布时间】:2018-09-07 08:40:50
【问题描述】:
短版 Jquery:$('img')[0] 不等于 Cheerio:$('img')[0] 为什么?
我的目标是获取查询的第一个图片网址
我读到,cheerio 是解析 html 数据的好方法,就像使用 jquery 一样。也许我错了,还有其他更好的方法吗?
我将 jquery 加载到我的控制台并访问 https://www.google.com/search?tbm=isch&q=duck 以设置我的 Cheerio 命令。
$('div img')[2].parentNode.href
返回
我不能发布两个以上的链接,但它会返回正确的链接
好的,现在我加载节点终端并输入以下命令。
request('https://www.google.com/search?tbm=isch&q=duck', function(e,r,d){
console.log(cheerio.load(d)('div img')[2].parentNode.href)
})
返回
未定义
由于某种原因
request('https://www.google.com/search?tbm=isch&q=duck', function(e,r,d){
console.log(cheerio.load(d)('div img')[2].parentNode.attribs.href)
})
返回
这很接近,但与我第一次在 chrome 控制台上获得的网址不同?这是怎么回事?如何从节点获取我在 chrome 控制台上获得的相同字符串?
【问题讨论】:
-
我在 chrome 控制台中获得的第一个链接(我想要的那个)是
https://www.google.com/imgres?imgurl=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fa%2Fa1%2FMallard2.jpg%2F1200px-Mallard2.jpg&imgrefurl=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDuck_test&docid=CQ23FBiNB5egAM&tbnid=1yCi1lR9_ZrdEM%3A&vet=10ahUKEwjYx73treLUAhWGQCYKHW_tDVQQMwiLASgAMAA..i&w=1200&h=912&bih=792&biw=1380&q=duck&ved=0ahUKEwjYx73treLUAhWGQCYKHW_tDVQQMwiLASgAMAA&iact=mrc&uact=8 -
未定义的是promise的返回值。