最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

将JSON与可能的差异进行比较

网站源码admin21浏览0评论

将JSON与可能的差异进行比较

将JSON与可能的差异进行比较

摘要-每10分钟CRON作业

我的应用程序从网站抓取数据并以以下格式检索JSON:

[{
    price: '$12,500',
    title: '2003 Jeep Wrangler X Sport Utility 2D',
    location: 'Valrico, Florida',
    miles: '90K miles',
    imgUrl: '.0-0/c43.0.260.260a/p261x260/95585818_10158483215408453_5232171551314411520_n.jpg?_nc_cat=103&_nc_sid=843cd7&_nc_oc=AQnRkSY39Su7LJ3YcapqFxNeys_RLB964OEHIjAMP6T3PwHB2dhHyKL9Y8xLapOUpns&_nc_ht=scontent-mia3-2.xx&oh=48828c46faf75c08d28b656459caaf01&oe=5ED8EA6F',
    itemURL: '/marketplace/item/525451485002934/'
  },
  {
    price: '$15,500',
    title: '2012 Jeep Wrangler Unlimited Sport SUV 4D',
    location: 'Clearwater, Florida',
    miles: '95K miles',
    imgUrl: '.0-0/c63.0.260.260a/p261x260/92586992_10156757268737397_3495264851003965440_n.jpg?_nc_cat=111&_nc_sid=843cd7&_nc_oc=AQk_rGSLpKWlkQrYAfXAZXCuV2iZ2cdmVi2lwvjhABGFbFycuawGBR4O-ax3VqUIBX4&_nc_ht=scontent-mia3-1.xx&oh=af5d06bf5564aa9d062ed4427ed1873e&oe=5ED72FA5',
    itemURL: '/marketplace/item/2901350359949722/'
  }
]

此信息已保存到文件newjeeps.json

前端使用此数据显示在站点上。

但是...

我只希望新项目显示在页面上。意思是,每次运行脚本时,我要显示尚未显示的项目。

因此,我想我将比较两个结果,并将差异保存到newjeeps.json,因此网页将始终显示新项目。对吧?

我仅是比较标题。如果标题匹配,请从最终阵列中删除。 (是的,在一个完美的世界中……)

这是我的代码。它不会出错,但是也不会保存不同的项目。我要删除重复项,然后重新保存新数据。

const initScraper = async () => {

  // Get currently listed items on Marketplace
  const items = await getItems('Jeep Wrangler');
  console.log(items);

  // Get OLD Jeeps
  const existingResults = jsonfile.readFileSync(fileName);
  const ex = existingResults.length;

    var existingTitle;
    var newTitle;
    var newItems = [];

    /* Loop through EXISTING (newjeeps.json) */
    for (var i = 0; i < ex.length; i++) {
      /* Existing Title */
      existingTitle = existingResults[i].itemTitle;
      /* Loop through NEW data */
      for (y = 0; y < items.length; y++) {
        /* New Title */
        newTitle = items[y].itemTitle;
        /* Do we have a match? */
        if (existingTitle == newTitle) {

          //console.log("match");
          // Remove from new results
          items.splice(y, 1);

          // Change detected?
          changed = true;

        }
      }
    }

  if (changed) {
    const page2 = await browser.newPage();
    await page2.goto(`.php`);
      jsonfile.writeFile(fileName, items, function (err) {
    if (err) console.error(err)
  })
  }



  console.log("done");

}

有人看见发生了什么事吗?

谢谢。

回答如下:

此问题的根本原因是,您试图访问对象中不存在的属性itemTitle

发布评论

评论列表(0)

  1. 暂无评论