首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnhandledPromiseRejectionWarning: RequestError:错误: URI "0“无效

UnhandledPromiseRejectionWarning: RequestError:错误: URI "0“无效
EN

Stack Overflow用户
提问于 2020-12-31 23:55:21
回答 1查看 158关注 0票数 0

我是nodejs的新手,正在尝试编写这个web抓取器,我遇到了以下错误。它要求返回promise,但我尝试了,但都没有结果。不确定我是否使用了正确的包。在这一点上,异步中的承诺对我来说很难理解。任何解释和代码都将是非常有用的。

代码语言:javascript
复制
PS C:\Users\farid\Desktop\Node Projects\webscraping> node --trace-warnings .\index.js                                   (node:10748) UnhandledPromiseRejectionWarning: RequestError: Error: Invalid URI "0"
    at new RequestError (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\errors.js:14:15)
    at Request.plumbing.callback (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\plumbing.js:87:29)
    at Request.RP$callback [as _callback] (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\plumbing.js:46:31)
    at self.callback (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.init (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:273:17)
    at Request.RP$initInterceptor [as init] (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\configure\request2.js:45:29)
    at new Request (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:127:8)
    at request (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\index.js:53:10)
    at C:\Users\farid\Desktop\Node Projects\webscraping\index.js:13:26
    at Object.<anonymous> (C:\Users\farid\Desktop\Node Projects\webscraping\index.js:50:3)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
    at emitUnhandledRejectionWarning (internal/process/promises.js:168:15)
    at processPromiseRejections (internal/process/promises.js:247:11)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)
(node:10748) RequestError: Error: Invalid URI "0"
    at new RequestError (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\errors.js:14:15)
    at Request.plumbing.callback (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\plumbing.js:87:29)
    at Request.RP$callback [as _callback] (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\lib\plumbing.js:46:31)
    at self.callback (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.init (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:273:17)
    at Request.RP$initInterceptor [as init] (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request-promise-core\configure\request2.js:45:29)
    at new Request (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\request.js:127:8)
    at request (C:\Users\farid\Desktop\Node Projects\webscraping\node_modules\request\index.js:53:10)
    at C:\Users\farid\Desktop\Node Projects\webscraping\index.js:13:26
    at Object.<anonymous> (C:\Users\farid\Desktop\Node Projects\webscraping\index.js:50:3)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
(node:10748) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    at emitDeprecationWarning (internal/process/promises.js:180:11)
    at processPromiseRejections (internal/process/promises.js:249:13)
    at processTicksAndRejections (internal/process/task_queues.js:94:32)
PS C:\Users\farid\Desktop\Node Projects\webscraping>

这是我的index.js文件代码。

代码语言:javascript
复制
const request = require("request-promise");
const cheeri = require("cheerio");
const fs = require("fs")
const json2csv = require("json2csv").Parser;

const web_urls = ["https://www.gillmanacura.com/" , "https://www.gillmanacura.com/service/contact-service/"];
// const web_urls = ["https://www.fernandezhonda.com/trade-in-calculator/"];

(async() => {
    let emptyData = [];
    
    for(let web_url in web_urls){
        let resp = await request({
            uri: web_url,
            headers:{},
            timeout:10000,
            json: true,
            gzip: true
    
        });
        
        let $ = cheeri.load(resp)
        

        
        let title = $('head title').text()
        let desc = $('meta[name="description"]').attr('content')
        let canonical = $('link[rel="canonical"]').attr('href')
        let kwd = $('meta[name="keywords"]').attr('content')
        let ogTitle = $('meta[property="og:title"]').attr('content')
        let ogImage = $('meta[property="og:image"]').attr('content')
        let ogkeywords = $('meta[property="og:keywords"]').attr('content')
    
        emptyData.push({
            title,
            desc,
            canonical,
            kwd,
            ogTitle,
            ogImage,
            ogkeywords
        });
     }

    const j2csv = new json2csv()
    const csv = j2csv.parse(emptyData)

    fs.writeFileSync("./results.csv", csv, "utf-8");

})();

如何解决这些错误?请给我建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-01 00:00:34

使用of而不是inin将在键上迭代,并在值上迭代of

代码语言:javascript
复制
for(let web_url in web_urls){
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65523008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档