如何解决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 举报,一经查实,本站将立刻删除。