JS Nightmare 未加载特定 URL?

问题描述

我已经开始了小型抓取项目并在一开始就停止了。虽然我可以做解析部分,但我在加载页面时遇到了问题。我已将代码减少到尽可能少,但仍然无法用于请求的 URL

// required Libraries
const cheerio = require("cheerio");
const Nightmare = require("nightmare");

const scraping = (url) => {
  url = "https://www.portaldrazeb.cz/drazba/144ex02170-20-62-rb3p1";
  // All scraping will be done here
  let nightmare = new Nightmare({ show: true });
  const nightmarePromise = new Promise((resolve,reject) => {
    nightmare
      .goto(url)
      .wait("main")
      .evaluate(() => {})
      .end()
      .then((response) => {
        var json = {
          title: "",picture: "",price: "",starting_price: "",description: "",address: "",map: "",customer: { name: "",email: "",phone: "" },};
        resolve(json);
      });
  });

  return nightmarePromise.then((jsonObj) => {
    nightmare = null;
    return jsonObj;
  });
};

module.exports = {
  scraping: scraping,};

虽然代码对任何 URL 都可以可靠地工作,但它对请求的 URL 不起作用。输出仅在 30% 的调用中是正确的,在其余调用调用启动 Nightmare 浏览器,页面开始加载,然后在一秒钟内发生几次重置,浏览器关闭显示以下错误

(node:18468) UnhandledPromiseRejectionWarning: 错误:导航错误 在 unserializeError (C:\Users\Tomas\DropBox (Personal)\Server\ScrapReality\node_modules\nightmare\lib\ipc.js:162:13) 在 EventEmitter 处。 (C:\Users\Tomas\DropBox (Personal)\Server\ScrapReality\node_modules\nightmare\lib\ipc.js:89:13) 在 Object.onceWrapper (events.js:422:26) 在 EventEmitter.emit (events.js:315:20) 在 ChildProcess。 (C:\Users\Tomas\DropBox (Personal)\Server\ScrapReality\node_modules\nightmare\lib\ipc.js:49:10) 在 ChildProcess.emit (events.js:315:20) 在发射(内部/child_process.js:876:12) 在 processticksAndRejections (internal/process/task_queues.js:85:21) (node:18468) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。要在未处理的承诺拒绝时终止节点进程,请使用 CLI 标志 --unhandled-rejections=strict(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝编号:3)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)