urls返回空数组[]
我不太理解这部分代码,因为它是借来的,
我要么需要帮助理解urls部分才能正确重新编码,
或者让人为我重新编码,我会尽我所能去理解它。
网址部分是为谷歌图片,但我正在使用另一个网站。
我正在抓取这个网站的图片: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]);
});
}发布于 2020-09-19 13:44:16
而不是
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'))发布于 2020-09-19 17:47:54
嗯,缩略图部分确实捕获了图像,它在console.log中看起来像这样(缩略图);
'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是未定义的呢?
发布于 2020-09-19 21:38:13
自从我开始使用"got“模块编写新代码后,这个问题就结束了。
https://stackoverflow.com/questions/63964571
复制相似问题