axetroy / crawler

nodejs 爬虫框架. crawler framework for nodejs
http://axetroy.github.io/crawler
Other
41 stars 9 forks source link

案例运行错误,RangeError: Use `yyyy` instead of `YYYY`(date-fns) #86

Open hehehai opened 4 years ago

hehehai commented 4 years ago
import { Crawler, Provider, Response, Options } from "@axetroy/crawler";

class MyProvider implements Provider {
  name = "scrapinghub";
  urls = ["https://blog.scrapinghub.com"];
  async parse($: Response) {
    const $nextPage = $("a.next-posts-link").eq(0);

    if ($nextPage) {
      $.follow($nextPage.prop("href"));
    }

    return $(".post-header>h2")
      .map((_, el) => $(el).text())
      .get();
  }
}

const config: Options = {
  timeout: 1000 * 5,
  retry: 3,
};

new Crawler(MyProvider, config)
  .on("data", (articles: string[]) => {
    for (const article of articles) {
      process.stdout.write(article + "\n");
    }
  })
  .on("error", (err, task) => {
    console.log(`request fail on ${task.url}: ${err.message}`);
  })
  .start();

error

(node:47382) UnhandledPromiseRejectionWarning: RangeError: Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr
    at throwProtectedError (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/date-fns/_lib/protectedTokens/index.js:22:11)
    at /Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/date-fns/format/index.js:429:41
    at Array.map (<anonymous>)
    at Object.format (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/date-fns/format/index.js:413:45)
    at Printf.template (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/@axetroy/crawler/src/logger.ts:16:18)
    at Printf.transform (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/logform/printf.js:11:26)
    at Format.transform (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/logform/combine.js:20:24)
    at DerivedLogger._transform (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/winston/lib/winston/logger.js:305:29)
    at DerivedLogger.Transform._read (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/readable-stream/lib/_stream_transform.js:177:10)
    at DerivedLogger.Transform._write (/Users/guanwei/code/demo/spider/wb_xhs_media/node_modules/readable-stream/lib/_stream_transform.js:164:83)
(node:47382) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:47382) [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.
hehehai commented 4 years ago

@axetroy