Ошибка типа: невозможно прочитать свойство 'replace' из неопределенного для URL-адресов изображений - PullRequest
0 голосов
/ 01 апреля 2020

Итак, я попытался научиться делать это самостоятельно, пройдя два видео курса об узле и cheerio на udemy.com, но я не стал лучше. Код создает массив URL-адресов изображений, когда я делаю это:

const request = require("request-promise");
const cheerio = require("cheerio");

const url = "https://www.example.com";

const scrapeResults = [];
async function scrapeJobHeader() {
  try {
    const htmlResult = await request.get(url);
    const $ = await cheerio.load(htmlResult);
    $("td.productListing-data > a ").each((index, element) => {
      const resultTitle = $(element).children("img");

      const img_url = resultTitle.attr("src");

      const scrapeResult = { img_url };

      scrapeResults.push(scrapeResult);
    });
    return scrapeResults;
  } catch (err) {
    console.error(err);
  }
}

async function scrapeWebsite() {
  const jobsWithHeaders = await scrapeJobHeader();
 console.log(jobsWithHeaders);

}

scrapeWebsite();

, но я получаю ошибку «Ошибка типа: не удается прочитать свойство« заменить »из неопределенного», когда я делаю это:

const img_url = resultTitle.attr("src").replace("images\\/more_color.png","");

Возвращаемые изображения включают в себя «images / more_color.png», но я просто хочу вернуть изображения реальных продуктов, а не pngs.

Результаты выглядят так:

{ img_url: 'images/more_color.png' },
  { img_url: undefined },
  { img_url: undefined },
  {
    img_url: 'images/20191206/thumb/AK1501-@RH-CRY-LOVE@22X06-825_3L@467400@200@01@200.jpg'
  },
  { img_url: 'images/more_color.png' },
  { img_url: undefined },
  { img_url: undefined },
  {
    img_url: 'images/20191206/thumb/AK1501-@GD-CRY-LOVE@22X06-825_3L@467399@200@01@200.jpg'
  },
  { img_url: 'images/more_color.png' },
  { img_url: undefined },
  { img_url: undefined },
  {
    img_url: 'images/20191206/thumb/AK1500-@GD-CRY-QUEEN@3X06-825_3L@467397@200@01@200.jpg'
  },
  { img_url: 'images/more_color.png' },
  { img_url: undefined },
  { img_url: undefined },

Следующим шагом будет избавление от неопределенных URL-адресов изображений, но я еще не дошел до этого.

...