javascript 图像抓取器空URL

fcwjkofz  于 12个月前  发布在  Java
关注(0)|答案(3)|浏览(189)

urls返回空数组[]
我自己也不太明白这部分代码是借来的,
我要么需要帮助理解url部分,以正确地重新编码,
或者找人帮我重新编码,我会尽我所能去理解。
网址的一部分是为谷歌图像,但我使用另一个网站。
我正在抓取这个网站的图像: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]);
  });
}

字符串

smtd7mpg

smtd7mpg1#

而不是

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'))

stszievb

stszievb2#

缩略图部分确实抓取了图像,在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是未定义的,我想也许用标签替换缩略图,因为这是它的类型,这会工作吗?
-EDIT-嗯,这是错误的,因为缩略图是在这个图像的类。
为什么.parent未定义?

sdnqo3pr

sdnqo3pr3#

这个问题已经解决了,因为我开始使用“get”模块编写新代码

相关问题