urls返回一个空数组[]
我不太了解这部分代码,因为它是借来的,
我需要帮助了解url部分才能正确地对其进行重新编码,
或者让某人为我重新编码,我会尽力理解。
网址部分是为Google图片制作的,而我使用的是其他网站。
我正在抓取该站点的图像:https://www.desktopnexus.com/search/kitsune+girl/1/
function kitsuneimage(message) {
var options = {
url: "https://www.desktopnexus.com/search/" + "kitsune+girl" + "/" + Math.ceil(Math.random() * (60 + 2)) +"/",
method: "GET",
headers: {
"Accept": "text/html",
"User-Agent": "Chrome"
}
}
console.log(options.url);
request(options, function(error, response, responseBody) {
if (error) {
return;
}
$ = cheerio.load(responseBody);
var links = $(".image a.link");
var urls = new Array(links.length).fill(0).map((v, i) => links.eq(i).attr("href"));
console.log(urls);
if (!urls.length) {
return;
};
message.channel.send(urls[0]);
});
}
答案 0 :(得分:0)
代替
var links = $(".image a.link")
也许这应该起作用:
var thumbnails = $("#middlecolumn .thumbnail")
// this is a jquery object, so we need to call get() to turn it into a plain array
var links = thumbnails.map(thumbnail => thumbnail.parent()).get()
var urls = links.map(link => link.getAttribute('href'))
答案 1 :(得分:0)
缩略图部分确实可以抓取图像,并且在console.log(thumbnails);中看起来像这样
'2': {
type: 'tag',
name: 'img',
namespace: 'http://www.w3.org/1999/xhtml',
attribs: [Object: null prototype] {
src: '//cache.desktopnexus.com/thumbseg/1853/1853748-200.jpg',
border: '1',
alt: 'girl',
class: 'thumbnail'
},
但是它说在.parent中是未定义的 我在想也许用标签替换缩略图,因为那是类型,行得通吗?
----编辑---- 嗯,那是错误的,因为缩略图是其中图像的类别。
那么.parent为什么未定义?
答案 2 :(得分:0)
自从我着手使用“ got”模块制作新代码以来,这个问题就关闭了。