Как получить статьи из shopmissa.com с помощью CheerioJS - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь получить все статьи этого поста. Пока это мой веб-сайт .

Но я не очень хорош в использовании Cheerio, я знаю только, как получить простые элементы.
И, например, изображение URL продукта имеет много дочерних элементов.

Данные, которые мне нужны, это:

  • Название статьи,
  • Цена,
  • URL,
  • изображение.

Я начал пытаться получить все изображения статей с:

axios.get("https://www.shopmissa.com/collections/eye-shadow")
     .then(res => 
       { if(res.status == 200) 
         { const html = res.data; 
           const $ = cheerio.load(html); 
           $(".product-index").each((i, elem) => 
             { console.log($(this)
               .children(".prod-container")
               .children(".prod-image") 
               .find("a")
               .children("reveal")
               .find("img")
               .attr("src")
             ) 
           }
         ) 
       } 
     }, error => console.log(error)
   )

Но я не понимаю всю картину ...
Что я могу сделать?

1 Ответ

0 голосов
/ 09 ноября 2018

Вместо того, чтобы пытаться сосредоточиться на обходе каждого DOM, используйте селекторы, чтобы cheerio выполнял тяжелую работу.

axios.get("https://www.shopmissa.com/collections/eye-shadow")
  .then(res => {
    if (res.status == 200) {
      const html = res.data;
      const $ = cheerio.load(html);
      $("#product-loop").children().each((i, elem) => {
        var imageSource = $(elem).find(".reveal img").attr("src")
        var productName = $(elem).find(".product-info h3").text()
        var productPrice = $(elem).find(".product-info .money").text()
        console.log(imageSource, productName, productPrice)
      })
    }
  }, error => console.log(error))
...