Tt-wW 2019-07-22 15:38 采纳率: 0%
浏览 331

关于node爬虫路径无效

爬取天气没问题,爬取自己学校就出错了,这是怎么回事呢?
萌新求解答

E:\frontend\node>node index.js
start
start
events.js:180
      throw er; // Unhandled 'error' event
      ^

Error: Invalid URI "/Content/Logo/logo_20170512104757535.PNG"
    at Request.init (E:\frontend\node\node_modules\request\request.js:273:31)
    at new Request (E:\frontend\node\node_modules\request\request.js:127:8)
    at request (E:\frontend\node\node_modules\request\index.js:53:10)
    at downLoad (E:\frontend\node\index.js:20:7)
    at Node.<anonymous> (E:\frontend\node\analyze.js:6:9)
    at initialize.exports.each (E:\frontend\node\node_modules\cheerio\lib\api\traversing.js:300:24)
    at Object.findImg (E:\frontend\node\analyze.js:4:14)
    at Request._callback (E:\frontend\node\index.js:12:21)
    at Request.self.callback (E:\frontend\node\node_modules\request\request.js:185:22)
    at Request.emit (events.js:203:13)
Emitted 'error' event at:
    at Request.init (E:\frontend\node\node_modules\request\request.js:273:17)
    at new Request (E:\frontend\node\node_modules\request\request.js:127:8)
    [... lines matching original stack trace ...]
    at Request.emit (events.js:203:13)
  • 写回答

1条回答

  • 桃宝护卫队 2023-04-14 09:27
    关注

    以下回答引用自chatGpt, 有用的话,请采纳哇!!!
    你的问题是404图片没有捕获错误。
    在Node.js中进行网络爬虫时,有时会出现图片404错误,这时可以使用try-catch语句来捕获错误并处理。以下是一个示例代码:

    const http = require('http');
    const fs = require('fs');
    const request = require('request');
    
    // 需要爬取的图片URL
    const imgUrl = 'http://example.com/image.jpg';
    
    // 发送请求
    request.head(imgUrl, function (err, res, body) {
      try {
        // 如果请求失败,则抛出错误
        if (err || res.statusCode !== 200) {
          throw new Error('Image not found');
        }
        // 如果请求成功,则继续下载图片
        request(imgUrl).pipe(fs.createWriteStream('image.jpg'));
      } catch (err) {
        // 捕获错误并进行处理
        console.error(err);
      }
    });
    

    在上面的代码中,我们首先使用request.head()方法发送一个HEAD请求以获取图片的元数据,然后使用try-catch语句来捕获错误。如果请求失败,则抛出一个自定义的错误,并在catch块中打印错误消息。如果请求成功,则继续使用request()方法下载图片。

    请注意,这只是一个简单的示例代码,您需要根据自己的具体需求来编写更完善的错误处理代码。此外,还应该注意遵守网站的爬取规则,以避免被封禁或触发反爬虫机制。

    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向